<complexType name="EventoClinico">
...
<sequence>
...
<element name="Corpo" type="sisrt:Corpo" minOccurs="0" />
</sequence>
...
</complexType>
和“公司”是
<complexType name="Corpo">
<sequence>
<any namespace="##any" processContents="lax" />
</sequence>
</complexType>
xsd.exe 工具将 Corpo 元素转换为
public XmlElement Corpo;
财产。
问题是:
如何用我的自定义类填充属性:
public class Example{
public string AString {get;set;}
}
如何设置 EventoClinico.Corpo = new Example("a string");?
许多问候。
弗朗切斯科。
这是以下帖子中建议的解决方案:
public XmlElement Convert<TObj>(TObj obj) {
XmlSerializer s = new XmlSerializer(typeof(TObj));
StringBuilder sb = new StringBuilder();
XmlWriterSettings settings= new XmlWriterSettings();
//settings.ConformanceLevel=ConformanceLevel.Fragment;
settings.OmitXmlDeclaration=true;
XmlWriter w = XmlWriter.Create(sb, settings);
s.Serialize(w, obj);
return ToXmlElement(sb.ToString());
}
public XmlElement ToXmlElement(string xml)
{
XmlDocumentFragment frag = new XmlDocument().CreateDocumentFragment();
frag.InnerXml = xml;
return frag.FirstChild as XmlElement;
}