2011-01-12 6 views
1

Gibt es Analoga von KnownTypeAttribute, aber für XmlSerializerClass? Wie kann ich bekannte Typen für asmx Web Services konfigurieren?Was ist das KnownType-Attribut analog für die XML-Serialisierung?

Ich habe einen .asmx-Webdienst erstellt. Jetzt kann der Client die Anfrage nicht serialisieren. Ich möchte also etwas wie KnownTypesAttribute, um anzugeben, welche Typen der Serializer verwenden muss.

+0

Post die "XmlInclude" Informationen in einer Antwort, und ich werde es upvote. –

+0

@John Saunders: gepostet. – Egor4eg

Antwort

2

musste ich einfach XmlIncludeAttribute Klasse hinzufügen, die als Eingangsparameter des web.service verwendet wird Methode. Dadurch generiert der Client eine korrekte Webreferenz, und XmlSerializer kann diese Klasse korrekt serialisieren.

<Xml.Serialization.XmlInclude(GetType(String()))> _ 
Public Class MssRequest 
......... 
1

Sie eine Reihe von bekannten Typen passieren kann:

XmlSerializer xs = new XmlSerializer(typeof(MyType), 
new Type[] {typeof(MyNestedType)}); 

In dieser Einstellung:

public class MyType 
{ 

    public IMyInterface NestedType { // .... implemented by MyNestedType 
+0

Danke für die Antwort. Aber ich muss es in asmx Web-Service verwenden (siehe Update in Post). Vielleicht gibt es irgendwelche Möglichkeiten, einen Webservice zu erstellen, der den Client dazu bringt, diesen Code in seiner Webreferenz zu generieren? – Egor4eg