Fråga : WCF bygga bo komplexa typer

Hi

I har ett problem exponering en klassificera via WCF, när den hänvisar till another anmärker, som jag skulle något liknande för att överföra ”besegrar binda” som väl.
To gör den lättare, är här förenklad strukturerar som visar problemet:

There är 3 klassificerar: Rekord (en basera klassificerar), OnsiteAppointment och kund (båda övertar från rekord). för class=" codeSnippet " för

1 för >

   _,
    Allmänhet klassificerar OnsiteAppointment
        Övertar rekordet

        Privat _startDate som DateTime
         _,
        Offentlig egenskap StartDate () som DateTime
            Få
                Gå _startDate tillbaka
            Avsluta får
            Uppsättning (ByVal värderar som DateTime),
                _startDate = värderar
            Avsluta uppsättningen
        Avsluta egenskapen

Privat _customer som kund
         _,
        Offentlig egenskapskund () som kund
            Få
                Gå _customer tillbaka
            Avsluta får
            Uppsättning (ByVal värderar som kund),
                _customer = värderar
            Avsluta uppsättningen
        Avsluta egenskapen

Avsluta klassificerar

  _,
    Allmänhet klassificerar kunden
        Övertar rekordet

        Privat _firstName som stränger
         _,
        Offentlig egenskap FirstName () som stränger
            Få
                Gå _firstName tillbaka
            Avsluta får
            Uppsättning (ByVal värderar som stränger),
                _firstName = värderar
            Avsluta uppsättningen
        Avsluta egenskapen
Avsluta klassificerar

 _,
Allmänhet klassificerar rekordet

Avsluta försök för >

I för Class<-/pre>

1 för >

Allmänhet fungerar GetAppointments (ByVal startDate som dateTime-, ByVal endDate som DateTime) som listar (av OnsiteAppointment) genomför IOnsiteScheduler.GetAppointments

            Försök

                Dunkla tidsbeställningar som nya listar (av OnsiteAppointment)
…,
                    Dunkel tidsbeställning som nya OnsiteAppointment
                    appointment.ID = avläsare (”appointmentId”)
                    appointment.StartDate = reader.SafeDate (”startDate”)
                    .                    
                    Dunkel kund som ny kund
                    customer.FirstName = reader.SafeString (”firstName”)

                   tidsbeställning. Kund = kund
                   tidsbeställningar. Tillfoga (tidsbeställning)
                   gå tidsbeställningar tillbaka
Avsluta arbeten för >

This för Function<-/pre>

HTTP/1.1 504 - motta Failure
Content-Type: text/html
Connection: close
Timestamp: 02:37: 54.822

ReadResponse () missade: Serveren gick inte ett svar för denna förfrågan tillbaka.                    

… och beställarekuggningarna som har mottagit denna message.

My, ifrågasätter naturligtvis är: Vilken förmiddag mig som orätt här gör?
Obviously ”rekord” har inget problem att vara utsatt, sedan OnsiteAppointment får den utsatta brunnen. Det finns inte något problem som exponerar den bygga bo typen (OnsiteAppointment.Customer) som väl. Varför så skulle det, omsorg, om kunden övertar från en typ som är den funktionsdugliga brunnen, som en basera klassificerar för annan, klassificerar?

Are tillbaka där några typer av begränsningar på det jämnt av att bygga bo/som hänvisar till andra typer, när gå anmärker? Jag skulle något liknande för att avstå från precis att nedladda vanliga tomma samlingar och därefter ”band dem upp” på beställaren - jag skulle föredrar att nedladda anmärka strukturerar, som precis jag har den i hjälpen för affärslagrar…

Any skulle för att vara stor!
Thanks

Environment: .NET 4.0, VS 2010, IIS 7, Win7 64bit
" klar "

Svar : WCF bygga bo komplexa typer

Hi,

I WCF som du inte kan ersätta en sub, klassificera för en basera klassificerar direkt, som du kan i C#.

Du kan använda ett attribut för att vara kompetent att passera klassificera till beställaren. Detta göras på det tjänste- har kontakt

KnownType - låter klassificera vara den passerade alltigenom som allt avtalar, och funktioner using basera klassificerar.
Denna är appliedtoen DataContracten.
C#: [KnownType (typeof (kund))]

ServiceKnownType - låter klassificera passeras endast för funktionen som den definieras på.
Detta appliceras till det tjänste- avtalar.

Personligen jag använder ServiceKnownType
C#: [ServiceKnownType (typeof (kund))]
VB.NET: ustomer))> _,

Ha en look här
http://msdn.microsoft.com/en-us/library/system.servicemodel.serviceknowntypeattribute.aspx

Hoppas detta hjälper,

Darren
Andra lösningar  
 
programming4us programming4us