Microsoft WPF 授权示例的模糊调用

Ambiguous Call on Microsoft WPF Authorization Example

我正在尝试了解桌面应用程序中的表单授权,我正在按照 Microsoft 从此处重新记录的示例进行操作:http://blog.magnusmontin.net/2013/03/24/custom-authorization-in-wpf/。但是,在第 316 和 318 行会生成错误 "The call is ambiguous between the following methods or properties: 'SecretWindow.SecretWindow()' and 'SecretWindow.SecretWindow()'":

if (parameter == null)
    view = new SecretWindow();//Error here
else
    view = new AdminWindow();//Error here

并且错误“类型 ['SecretWindow' 或 'AdminWindow'] 已经在这些行 431 和 457 上使用相同的参数类型定义了一个名为 '.ctor' 的成员:

public SecretWindow()//Error here
{
    InitializeComponent();
}

public AdminWindow()//Error here
{
    InitializeComponent();
}

对我来说,模棱两可的调用看起来应该只是实例化 类 SecretWindow 或 AdminWindow,我找不到在第二个错误中已经定义方法的位置。谁能看到发生了什么事?提前致谢!

编辑:

我删除了第一个项目并重试了教程,现在可以了。

错误告诉你的是 class SecretWindowAdminWindow 都不止一次地用完全相同的签名声明它们的 .ctor (构造函数)。 简单地说,public SecretWindow()public AdminWindow() 在整个项目中出现不止一次。

如您所见,每个从 Window 派生的视图都是 partial class,即。它可能在其他文件中有它的一些代码,也有SecretWindowAdminWindow.

的定义

对于 Windows Presentation Foundation,每个 window 还预生成了位于名为 <ViewName>.g.i.cs\obj\Debug 文件夹中的文件。 尝试删除项目 obj\Debug 文件夹中的所有内容,然后重建 Visual Studio.

中的所有内容

最快的方法是右键单击您的项目名称并选择 Open Folder in File explorer.