问题描述
我有一个项目,它使用代码生成器自动为字段提供 INotifyPropertyChanged
支持。项目中的某些类实现了一个接口,该接口具有一些应该由该源生成器为实现类生成的属性。现在,Visual Studio 在编辑这些类中的任何一个时都不会向我显示错误消息,但是构建项目会产生接口未实现属性的错误。我可以导航到生成的属性,Intellisense 也可以找到它们,因此这些属性应该存在。
这是一个简短的例子:
IMyInterface.cs
:
public interface IMyInterface
{
string Title { get; set; }
}
AClass.cs
:
public partial class AClass : BaseClassForINPC,IMyInterface
{
[NotificationProperty]
private string title;
}
partial class AClass
{
public string Title
{
get => title;
set => SetValue(ref title,value,"Title");
}
}
项目目标 .NET Core 3.1
+ WPF
。在以 .NET Standard 2.0
为目标的项目中使用源生成器工作正常。我是否遗漏了某些东西,或者此类项目尚不支持此功能?
编辑
我测试了一些配置并得到以下结果:
-
.NET Standard 2.0
按预期工作 -
.NET Standard 2.1
以及 - 基于
WPF Custom Control Library (.NET)
模板的项目有效- 将项目配置为与
WPF App (.NET)
模板相同(=.csproj
文件看起来相同)工作 - 适用于定位到
.NET Core 3.1
和.NET 5
- 将项目配置为与
- 一个新的基于
WPF App (.NET)
模板的项目产生了上述错误(对于3.1
和5
)
但是,从构建中删除项目中的所有 .xaml
文件(例如 App.xaml
或 MainWindow.xaml
加上它们的代码 Beh 文件)可以解决该问题。如果您将这些文件添加到库项目中,它也将无法构建并出现相同的错误)。所以我的第一个想法是:你还不能在同一个项目中使用带有 .xaml
文件的源代码生成器。不过,最初的问题仍然存在。我是否遗漏了设置中的某些内容,还是尚未支持?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)