我正在尝试了解桌面应用程序中的表单授权,并且我正在遵循Microsoft从此处开始的示例:http://blog.magnusmontin.net/2013/03/24/custom-authorization-in-wpf/。错误“以下方法或属性之间的调用不明确:'SecretWindow.SecretWindow()'和'SecretWindow.SecretWindow()'”生成,但是,在第316和318行:
if (parameter == null)
view = new SecretWindow();//Error here
else
view = new AdminWindow();//Error here
错误“Type ['SecretWindow'或'AdminWindow']已经定义了一个名为'.ctor'的成员,在这些行431和457上具有相同的参数类型:
public SecretWindow()//Error here
{
InitializeComponent();
}
和
public AdminWindow()//Error here
{
InitializeComponent();
}
对我来说,模糊调用看起来应该只是实例化类SecretWindow或AdminWindow,而我无法找到第二个错误中已定义方法的位置。任何人都可以看到发生了什么?提前谢谢!
修改
我删除了第一个项目并重试了教程,现在它可以正常工作。
答案 0 :(得分:1)
错误告诉您,类SecretWindow
和AdminWindow
都会多次声明其.ctor
(构造函数)具有完全相同的签名。
简单地说,整个项目中出现public SecretWindow()
和public AdminWindow()
的次数不止一次。
如您所见,每个从Window
派生的生成视图都是 partial
类,即。它可能其他文件中的某些代码,也可以定义为SecretWindow
或AdminWindow
。
对于 Windows Presentation Foundation
,每个窗口都有预生成文件,该文件位于名为\obj\Debug
的{{1}}文件夹中。
尝试删除项目的<ViewName>.g.i.cs
文件夹中的所有内容,然后在Visual Studio中重建所有内容。
最快的方式是右键点击您的项目名称,然后选择 obj\Debug
。