如何告诉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”。
2条答案
按热度按时间xj3cbfub1#
在顶级命名空间中定义的从
Window
派生的类(所有生成的Window
类都是)永远不能声明为private
。尝试这样做会产生不同的错误:错误CS1527:在命名空间中定义的元素不能显式声明为private、protected或protected internal
所以你想做的事是不可能的即使它是法律的,也没有办法从其他类访问该类。
编辑
该窗口可以是 * 内部 *,阅读更多:Making a XAML file internal in .Net
lfapxunr2#
您需要在XAML文件中添加
x:Class="internal"