如何告诉 WPF 中 XAML 的代码生成器将我的窗口声明为“内部”?

问题描述 投票:0回答:2

如何告诉 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 在下面正确地指出,我无法在命名空间级别声明私有,因此我将更改为“内部”。

wpf code-generation window private
2个回答
2
投票

Window
派生并在顶级命名空间中定义的类(与所有生成的
Window
类一样)永远不能声明
private
。尝试这样做会产生不同的错误:

错误 CS1527:命名空间中定义的元素不能显式声明为私有、受保护或受保护内部

所以不可能做你想做的事。即使它是合法的,无论如何也无法从其他类访问该类。

编辑

窗口可以是内部,请阅读更多内容:在 .Net 中创建 XAML 文件内部


0
投票

您需要在

XAML
文件中添加 x:Class="internal"

© www.soinside.com 2019 - 2024. All rights reserved.