序列化引用的类Object

时间:2012-04-17 16:40:00

标签: c# .net serialization xml-serialization asmx

// Reference.cs
// Conveintly serializable
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.225")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:schemas-sc-jp:mfp:osa-1-1")]
public partial class CREDENTIALS_TYPE : CREDENTIALS_BASE_TYPE {

    private string datatypeField;

    private OPAQUE_DATA_TYPE metadataField;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("data-type")]
    public string datatype {
        get {
            return this.datatypeField;
        }
        set {
            this.datatypeField = value;
        }
    }

    /// <remarks/>
    public OPAQUE_DATA_TYPE metadata {
        get {
            return this.metadataField;
        }
        set {
            this.metadataField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.225")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:schemas-sc-jp:mfp:osa-1-1")]
public partial class OPAQUE_DATA_TYPE {

    private System.Xml.XmlElement[] anyField;

    private System.Xml.XmlAttribute[] anyAttrField;

    /// <remarks/>
    [System.Xml.Serialization.XmlAnyElementAttribute()]
    public System.Xml.XmlElement[] Any {
        get {
            return this.anyField;
        }
        set {
            this.anyField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAnyAttributeAttribute()]
    public System.Xml.XmlAttribute[] AnyAttr {
        get {
            return this.anyAttrField;
        }
        set {
            this.anyAttrField = value;
        }
    }
}

我有一个webmethod,它从网络上的设备获取数据,这些数据的一部分是用于授权设备的凭据。

我们正在使用API​​,因此要接收此数据,我必须在网络方法中将CREDENTIALS_TYPE作为参数类型。我需要做的是保存这些数据,这样就可以在没有webmethod的情况下获取数据。

现在我已经将类序列化为XML文件了,所以我选择了熟悉的选项,但只使用了我自己创建的类。 我想知道实际上是否可以使用不属于我的引用类做同样的事情?

我必须创建一个匹配CREDENTIALS_TYPE并复制数据的类,但我无法找到在不同类型之间进行转换的方法。

“CREDENTAILS_TYPE”来自MFP,因此反映和更改代码对我的情况不利,因为无论如何我都无法更新。

有任何建议/意见吗?

1 个答案:

答案 0 :(得分:1)

由于您无法修改您不拥有源代码的类,因此请使用您需要的序列化属性创建自己的DTO,然后使用Automapper在两者之间来回传输字段数据