【问题标题】:Can someone help me solve this in c#有人可以帮我在c#中解决这个问题吗
【发布时间】:2013-02-28 22:43:42
【问题描述】:

我使用xsd.exe /classes cwmp-1-1.xsd 生成c#代码。

以下代码由工具生成。

public partial class Array 
{
    [System.Xml.Serialization.XmlAnyElementAttribute()]
    public System.Xml.XmlElement[] Any;
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified)]
    public string arrayType;
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified)]
    public string offset;
    [System.Xml.Serialization.XmlIgnoreAttribute()]
    public bool offsetSpecified;
    [System.Xml.Serialization.XmlAttributeAttribute(DataType = "ID")]
    public string id;
    [System.Xml.Serialization.XmlAttributeAttribute(DataType = "anyURI")]
    public string href;
    [System.Xml.Serialization.XmlAnyAttributeAttribute()]
    public System.Xml.XmlAttribute[] AnyAttr;
}

public partial class EventList : Array
{
}

public partial class EventStruct
{
    [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public string EventCode;
    [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public string CommandKey;
}

public partial class Inform
{
    [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public DeviceIdStruct DeviceId;
    [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public EventList Event;
    [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public uint MaxEnvelopes;
    [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public System.DateTime CurrentTime;
    [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public uint RetryCount;
    [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public ParameterValueList ParameterList;
}

和我的代码

Inform inform = new Inform();
inform.Event = new EventList();

EventStruct es = new EventStruct();
es.EventCode = "0 BOOTSTRAP";
es.CommandKey = "";

我的问题是如何将es 添加到inform.Event

以及如何序列化/反序列化类 Inform。

【问题讨论】:

    标签: c# xsd.exe


    【解决方案1】:

    您问题的第一部分。

    inform.Event = es;
    

    您问题的第二部分,这是我的一些代码,适合您的情况。

    反序列化:

    XmlSerializer serializer = new XmlSerializer(typeof(Inform));
    Inform ifnorm = null;
    using (StreamReader sr = new StreamReader((FileName))
    {
        inform = (Inform)serializer.Deserialize(sr)
    }
    

    我想你可以从这个链接到documentation 找出序列化。

    【讨论】:

    • inform.Event 的类型是 EventList,而不是 EventStruct。我没有看到EventStruct 类型的任何字段;但是,我们看到的是部分类。此处未显示的EventStruct 的另一部分是否源自EventList
    • 您可能需要执行以下操作来添加事件:inform.Event.Add(es);
    • inform.Event = es;不对而且inform.Event没有Add方法
    • 我不能从 EventList 派生任何类型
    • 好的,试试inform.Event[0] = es;
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多