シリアル化された xml クラスを Soap Envelope にロードできるようにしたいと考えています。私は始めているので、内部を埋めていないので、次のように見えます:
<Envelope
xmlns="http://schemas.xmlsoap.org/soap/envelope/" />
次のように表示したい:
<Envelope
xmlns="http://schemas.xmlsoap.org/soap/envelope/" ></Envelope>`
私が書いたクラスはこれです:
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://schemas.xmlsoap.org/soap/envelope/",ElementName="Envelope", IsNullable = true)]
public class TestXmlEnvelope
{
[System.Xml.Serialization.XmlElement(ElementName="Body", Namespace="http://schemas.xmlsoap.org/soap/envelope/")]
public System.Collections.ArrayList Body = new System.Collections.ArrayList();
} //class TestXmlEnvelope`
他の人が個々の要素でそれを望むかもしれないので、私はこれを例として使用しています. これは単純に違いないと確信していますが、悲しいことに、これに適切なキーワードがわかりません。
いつもお世話になっております。
[編集] この命令を使用しようとするとエラーが発生します
System.Xml.Serialization.XmlSerializer xmlout = new System.Xml.Serialization.XmlSerializer(typeof(TestXmlEnvelope));
System.IO.MemoryStream memOut = new System.IO.MemoryStream();
xmlout.Serialize(memOut, envelope, namespc);
Microsoft.Web.Services.SoapEnvelope soapEnv = new Microsoft.Web.Services.SoapEnvelope();
soapEnv.Load(memOut);
「ルート要素が見つかりません」というエラーが表示されます。
[編集] オブジェクトをシリアル化した後、memOut.Position = 0 を設定しなかったというエラーを修正しました。