2013-08-21 13 views
5

Aktualnie używam starszej usługi WCF, która nie jest zgodna ze standardami nazewnictwa opracowywanej aplikacji. Teraz przy opracowywaniu przeciwko usługi REST, gdzie tworzę modele na własną rękę to jest naprawdę łatwe do zmiany nazwy właściwość tak:Zmiana nazwy właściwości z modelu generowanego przez usługę WCF

[DataContract] 
public class SomeModel 
{ 
    [DataMember(Name = "id")] 
    public string Id { get; set; } 

    // ... 
} 

Ale z usług WCF generuje model, a nie chcę aby edytować wygenerowany plik, ponieważ wszystkie moje zmiany zostaną utracone, gdy ktoś/coś uruchomi generowanie kodu ponownie. Jak zatem osiągnąć ten sam cel przy korzystaniu z usługi WCF?

+0

Nie generuje automatycznie kodu w Visual Studio i robi to za pomocą [svcutil.exe] (http://msdn.microsoft.com/en-us/library/ms733133.aspx) i dodaje plik .cs tworzy (po tym jak to zrobisz) jest akceptowalny? –

+0

@ScottChamberlain dzięki. Sprawdzę to. Jestem całkiem nowy w temacie WCF, więc pomyślałem, że może być naprawdę trywialne rozwiązanie mojego problemu. – Mark

Odpowiedz

3
How about adapter pattern? 

ten pozwoli Ci grać z klasy myClass obiektów w aplikacji, podczas gdy jest ona przekazywana do usługi można mieć exposedClaSs który jest generowany automatycznie.

0

Moim zdaniem używanie generatora proxy jest całkowitą stratą czasu: to, co chcesz zrobić, to zarządzać swoimi zajęciami ręcznie i niech coś innego poradzi sobie z podstawowymi szczegółami implementacji w sposób, który nie wpływa na ciebie i jest odporny zmienić. Sposób, w jaki robimy to w naszym obecnym projekcie, polega na wykorzystaniu dynamicznego proxy zamka do wysyłania wywołań do fabryki kanałów.

Zrobiliśmy coś takiego http://www.planetgeek.ch/2010/10/13/dynamic-proxy-for-wcf-with-castle-dynamicproxy/ i stwierdziliśmy, że działa bardzo dobrze.

2

Jeśli spojrzysz na wygenerowany kod, zobaczysz, że klasy DataContract są częściowe.

Można dodać plik do projektu z tą samą definicją częściowej klasy i utworzyć właściwości opakowania o poprawnej nazwie.

Powiązane problemy