首先使用SDK中的XSD.exe生成C#或者VB.net的Class,例如
/**//// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.vivotek.com/Surveillance/ST7501")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://www.vivotek.com/Surveillance/ST7501", IsNullable = false)]
public partial class ClientHello
...{
private string versionField;
private string msgField;
private string myNameField;
private string myRefNameField;
/**//// <remarks/>
public string Version
...{
get
...{
return this.versionField;
}
set
...{
this.versionField = value;
}
}
/**//// <remarks/>
public string Msg
...{
get
...{
return this.msgField;
}
set
...{
this.msgField = value;
}
}
/**//// <remarks/>
public string MyName
...{
get
...{
return this.myNameField;
}
set
...{
this.myNameField = value;
}
}
/**//// <remarks/>
public string MyRefName
...{
get
...{
return this.myRefNameField;
}
set
...{
this.myRefNameField = value;
}
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.vivotek.com/Surveillance/ST7501")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://www.vivotek.com/Surveillance/ST7501", IsNullable = false)]
public partial class ClientHello
...{
private string versionField;
private string msgField;
private string myNameField;
private string myRefNameField;
/**//// <remarks/>
public string Version
...{
get
...{
return this.versionField;
}
set
...{
this.versionField = value;
}
}
/**//// <remarks/>
public string Msg
...{
get
...{
return this.msgField;
}
set
...{
this.msgField = value;
}
}
/**//// <remarks/>
public string MyName
...{
get
...{
return this.myNameField;
}
set
...{
this.myNameField = value;
}
}
/**//// <remarks/>
public string MyRefName
...{
get
...{
return this.myRefNameField;
}
set
...{
this.myRefNameField = value;
}
}
}
然后就可以使用这个Class生成xml
ClientHello mESTClientHello = new ClientHello();
mESTClientHello.Msg = "dddd";
mESTClientHello.MyName = "ffaffaf";
mESTClientHello.MyRefName = "fsfewfrewfwe";
mESTClientHello.Version = "1.0";
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(KTMonitor.Entity.ST7501.ClientHello));
//System.IO.TextWriter writer = new System.IO.StreamWriter("po2.xml"); //写文件
//writer.Close();
System.IO.Stream stream = new System.IO.MemoryStream();
serializer.Serialize(stream, mESTClientHello);
string mResult = "";
//将二进制流写入数组
byte [] array = new byte[stream.Length];
stream.Position = 0;
stream.Read(array, 0, (int)stream.Length);
//关闭流
stream.Close();
mResult = System.Text.Encoding.Default.GetString(array); //获取XML字串
mESTClientHello.Msg = "dddd";
mESTClientHello.MyName = "ffaffaf";
mESTClientHello.MyRefName = "fsfewfrewfwe";
mESTClientHello.Version = "1.0";
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(KTMonitor.Entity.ST7501.ClientHello));
//System.IO.TextWriter writer = new System.IO.StreamWriter("po2.xml"); //写文件
//writer.Close();
System.IO.Stream stream = new System.IO.MemoryStream();
serializer.Serialize(stream, mESTClientHello);
string mResult = "";
//将二进制流写入数组
byte [] array = new byte[stream.Length];
stream.Position = 0;
stream.Read(array, 0, (int)stream.Length);
//关闭流
stream.Close();
mResult = System.Text.Encoding.Default.GetString(array); //获取XML字串