2013-11-14 17 views
7

Wszystkie zainstalowane tutaj komputery dev mają zainstalowany DotNET 4.5. Ten ostatni ma zainstalowaną 4.0. Tylko ten z 4.0 generuje klasy pośredniczące, które implementują INotifyPropertyChange, wszystkie pozostałe komputery nie.SvcUtil/edb nie generuje INotifyPropertyChange, gdy zainstalowany jest DotNET 4.5.

Zgodnie z MSDN/edb jest obsługiwany. http://msdn.microsoft.com/en-us/library/aa347733(v=vs.110).aspx

Przełączniki używamy to:/O/ct/R/EDB/n/NOCONFIG/TCV

to generowany z komputera 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"); 
      } 
     } 
    } 

To jest z 4.5 Komputer (z 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; 
     } 
    } 

Odpowiedz

2

Nie mogę powiedzieć, dlaczego to nie działa.

Mogę jednak podać sztuczkę, jak sobie z tym poradzić. Można użyć plików .tt (szablony T4) w celu przywrócenia brakujących powiadomień w ustawieniach właściwości w określonych klasach istniejących w rozwiązaniu w czasie kompilacji.

Przykładem sposobu wdrożenia takiej funkcjonalności jest dostępna here on Pluralsight i here on MSDN więcej informacji o składni szablonów T4.

+0

Tworzenie szablonu proxy od podstaw nie jest banalne. Jeśli nie można znaleźć szablonu do użycia jako punktu wyjścia, użycie T4 naprawdę nie pomaga –

+0

Nie chodzi o tworzenie nowych serwerów proxy od zera. Chodzi o stworzenie szablonu T4, który będzie wykorzystywał elementy Visual Studio, takie jak rozwiązania, projekty, pliki, aby znaleźć proxy i zmodyfikować ich implementację właściwości w czasie kompilacji poprzez refleksję, aby zaimplementować brakujące zmiany powiadomień. –

+0

Byłem tam, wykonałem to, sparsowałem XSD, wygenerowałem pliki. Jeśli nie masz już szablonu, utworzenie go od zera potrwa kilka dni –