2013-11-14 5 views
7

Alle Dev-Computer hier aber einer hat DotNET 4.5 installiert. Der letzte hat 4.0 installiert. Nur der mit 4.0 generiert Proxy-Klassen, die INotifyPropertyChange implementieren, alle anderen Computer nicht.SvcUtil/edb generiert kein INotifyPropertyChange, wenn DotNET 4.5 installiert ist

Nach MSDN/Edb wird unterstützt. http://msdn.microsoft.com/en-us/library/aa347733(v=vs.110).aspx

Die Schalter wir verwenden, sind:/o/ct/r/EDB/n/noconfig/TCV

dies aus dem 4.0-Computer erzeugt wird:

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"); 
      } 
     } 
    } 

Dies wird von einem ist 4.5 Computer (mit Windows SDK 7.0A):

Antwort

2

Ich kann Ihnen nicht sagen, warum es nicht funktioniert.

Allerdings könnte ich Ihnen einen Trick geben, wie Sie das umgehen können. Sie können .tt Dateien (T4-Vorlagen) verwenden, um fehlende Benachrichtigungen in den Eigenschaftensettern bestimmter Klassen wiederherzustellen, die zum Zeitpunkt der Kompilierung in Ihrer Lösung vorhanden sind.

Ein Beispiel für die Implementierung einer solchen Funktionalität ist verfügbar here on Pluralsight und here on MSDN ist mehr Informationen über T4-Vorlagen-Syntax.

+0

Erstellen einer Proxy-Vorlage von Grund auf neu ist nicht trivial. Wenn man keine Vorlage als Ausgangspunkt findet, hilft die Verwendung von T4 nicht wirklich. –

+0

Die Idee besteht nicht darin, neue Proxies von Grund auf neu zu erstellen. Es geht darum, eine T4-Vorlage zu erstellen, die Visual Studio-Elemente wie Lösungen, Projekte und Dateien verwendet, um Proxys zu finden und ihre Eigenschaftenimplementierung zur Kompilierungszeit durch Reflexion zu ändern, sodass sie fehlende Änderungsbenachrichtigungen implementieren. –

+0

Da gewesen, das getan, analysiert die XSD, erzeugte die Dateien. Sofern Sie nicht bereits eine Vorlage haben, dauert es einige Tage, bis Sie eine Vorlage erstellt haben –

Verwandte Themen