如何告诉 WPF 中 XAML 的代码生成器将我的窗口声明为“内部”?
默认情况下,当我运行VS2010创建新项目时,生成的代码被声明为“公共”。我使用 Autofac 作为我的 IoC,并且遵循通过属性注入设置我的 ViewModel 的模式。我想将我的 ViewModel 声明为“私有”,但编译器抱怨可访问性不一致。我可以将 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 在下面正确地指出,我无法在命名空间级别声明私有,因此我将更改为“内部”。
从
Window
派生并在顶级命名空间中定义的类(与所有生成的 Window
类一样)永远不能声明 private
。尝试这样做会产生不同的错误:
错误 CS1527:命名空间中定义的元素不能显式声明为私有、受保护或受保护内部
所以不可能做你想做的事。即使它是合法的,无论如何也无法从其他类访问该类。
编辑
窗口可以是内部,请阅读更多内容:在 .Net 中创建 XAML 文件内部
您需要在
XAML文件中添加
x:Class="internal"