安装DotNET 4.5时,SvcUtil / edb不会生成INotifyPropertyChange

时间:2013-11-14 15:30:04

标签: c# .net wcf .net-4.0 .net-4.5

这里的所有开发计算机都安装了DotNET 4.5。最后一个安装了4.0。只有4.0的那个生成实现INotifyPropertyChange的代理类,所有其他计算机都没有。

根据MSDN / edb支持。 http://msdn.microsoft.com/en-us/library/aa347733(v=vs.110).aspx

我们使用的开关是:/ o / ct / r / edb / n / noconfig / tcv

这是从4.0计算机生成的:

public partial class OrganizationEdition : MyCompany.MyProject.Client.Win.ServiceProxy.UpdateableEntity, System.ComponentModel.INotifyPropertyChanged
{

    private string CommentField;

    private System.DateTime ValidFromField;

    private System.Nullable<System.DateTime> ValidToField;

    [System.Runtime.Serialization.DataMemberAttribute()]
    public string Comment
    {
        get
        {
            return this.CommentField;
        }
        set
        {
            if ((object.Equals(this.CommentField, value) != true))
            {
                this.CommentField = value;
                this.RaisePropertyChanged("Comment");
            }
        }
    }

这是来自4.5计算机(使用Windows SDK 7.0A):

public partial class OrganizationEdition : MyCompany.MyProject.Client.Win.ServiceProxy.UpdateableEntity
{

    private string CommentField;

    private System.DateTime ValidFromField;

    private System.Nullable<System.DateTime> ValidToField;

    [System.Runtime.Serialization.DataMemberAttribute()]
    public string Comment
    {
        get
        {
            return this.CommentField;
        }
        set
        {
            this.CommentField = value;
        }
    }

1 个答案:

答案 0 :(得分:2)

我不能告诉你它为什么不起作用。

但是我可以给你一个如何解决这个问题的技巧。您可以使用 .tt 文件(T4模板),以便在编译时在解决方案中存在的特定类中的属性设置器中恢复缺少的通知。

如何实现此类功能的示例是可用的here on Pluralsight,而here on MSDN是有关T4模板语法的更多信息。