如何告诉WPF中的XAML代码生成器将我的Window声明为“internal”?

fcy6dtqo  于 2023-10-22  发布在  其他
关注(0)|答案(2)|浏览(103)

如何告诉WPF中的XAML代码生成器将我的Window声明为“internal”?
默认情况下,当我运行VS2010创建新项目时,和生成的代码被声明为“public”。我使用Autofac作为我的IoC,我遵循的模式是通过属性注入设置ViewModel。我想声明我的ViewModel为“private”,但是编译器抱怨可访问性不一致。我可以将MainWindow.xaml.cs中的“public”更改为“internal”,但如何告诉生成类的其余部分的代码也将MainWindow声明为“internal”?
我目前拥有的代码:

public partial class MainWindom : Window
{
    public ViewModel ViewModel { get; set; }
}

public class ViewModel
{
}

我想要的代码:

internal partial class MainWindom : Window
{
    public ViewModel ViewModel { get; set; }
}

internal class ViewModel
{
}

或者我应该给予,不与工具作斗争,只是去与它?
Rick Sladkey在下面正确地指出,我不能在命名空间级别声明private,所以我改为“internal”。

xj3cbfub

xj3cbfub1#

在顶级命名空间中定义的从Window派生的类(所有生成的Window类都是)永远不能声明为private。尝试这样做会产生不同的错误:
错误CS1527:在命名空间中定义的元素不能显式声明为private、protected或protected internal
所以你想做的事是不可能的即使它是法律的,也没有办法从其他类访问该类。

编辑

该窗口可以是 * 内部 *,阅读更多:Making a XAML file internal in .Net

lfapxunr

lfapxunr2#

您需要在XAML文件中添加x:Class="internal"

相关问题