标黄段代码:
XmlSerializer serializer = new XmlSerializer(ctb.GetType(), new Type[] {CustomerClass});
XmlSerializer serializer = new XmlSerializer(ctb.GetType(), new Type[] {CustomerClass});
解决方案 »
- c# socket传送大文件分享代码。
- VS2010.WinForm.未能加载文件或程序集或它的某一个依赖项。系统找不到指定的文件。
- 50分寻求图像合成方法
- WebBrowser问题请各位帮忙!
- 菜鸟我愁了很久了,望各位好心的高手们帮帮忙.....
- ############简单时间转换问题 100分相送 不够再加 请大家帮忙!!!##########
- C# winform 事件
- 现在何种语言,不可以反编译?
- 知道assembly name和该assembly里面的某个class name 怎么知道该class 对应的NameSpace?
- 动态生成Button;只显示一个
- DirectX游戏程序优化
- 关于IP换代理的问题
不幸的是RuntimeType是一个内部的类,不被XmlSerializer认可。倒是可以传输类型的全名,只是麻烦些,要手工做Xml系列化:
[Serializable]
public class ClassToBeSerialize : IXmlSerializable
{
public Type AType {set;get;} //--------------------------------------------------------
public System.Xml.Schema.XmlSchema GetSchema()
{
return null;
}
public void ReadXml(XmlReader reader)
{
if( reader.Read() && reader.IsStartElement("AType") )
{
string typeName = reader.ReadString();
this.AType = Type.GetType(typeName);
}
}
public void WriteXml(XmlWriter writer)
{
writer.WriteElementString("AType", this.AType == null ? "" : this.AType.FullName);
}
//-------------------------------------------------------
}
如果你怕麻烦,则可以保存类型的全名,而不是类型本身(类型可以由全名来重构):
public class ClassToBeSerialize
{
public string ATypeName {set;get;}
}