我正在尝试了解桌面应用程序中的表单授权,我正在按照 Microsoft 从此处重新记录的示例进行操作:http://blog.magnusmontin.net/2013/03/24/custom-authorization-in-wpf/ .不过,在第 316 行和第 318 行会生成错误“调用在以下方法或属性之间不明确:‘SecretWindow.SecretWindow()’和‘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 类,我找不到在第二个错误中已经定义方法的位置。谁能看到发生了什么事?提前致谢!
编辑:
我删除了第一个项目并重试了教程,现在可以了。
最佳答案
错误告诉你的是这两个类 SecretWindow
和 AdminWindow
声明他们的.ctor
(构造函数)不止一次具有完全相同的签名。
简单地说,public SecretWindow()
不止一次出现。和 public AdminWindow()
在整个项目中。
如您所见,每个生成的 View 都源自 Window
是 partial
类,即。它可能有它的一些代码在其他文件中,也有 SecretWindow
的定义或 AdminWindow
.
对于 Windows Presentation Foundation
每个窗口还预生成了位于 \obj\Debug
中的文件名为 <ViewName>.g.i.cs
的文件夹.
尝试删除 obj\Debug
中的所有内容项目的文件夹,然后在 Visual Studio 中重建所有内容。
最快的方法是右键单击您的项目名称并选择 Open Folder in File explorer
.
关于c# - Microsoft WPF 授权示例的模糊调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36136990/