2012-04-17 3 views
0
// 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; 
     } 
    } 
} 

У меня есть веб-метод, который получает данные от устройства в сети, частью этих данных являются учетные данные, используемые для авторизации с устройством.Сериализация ссылочного класса Объект

Мы используем API, поэтому, чтобы получить эти данные, я должен иметь CREDENTIALS_TYPE в качестве типа параметра в веб-методе. Мне нужно сохранить эти данные, чтобы их можно было использовать без веб-метода.

Теперь у меня есть сериализованные классы для файлов XML, поэтому я пошел со знакомым вариантом, но только с классами собственного создания. Я хотел бы знать, можно ли сделать то же самое с ссылочным классом, который не является моим?

Мне нужно создать класс, который соответствует CREDENTIALS_TYPE и скопировать данные, но я не смог найти способ преобразования между различными типами.

«CREDENTAILS_TYPE» поступает из МФУ, поэтому отражение и изменение кода в моей ситуации не очень хорошо, потому что я все равно не мог его обновить.

Любые предложения/рекомендации?

+0

Почему это имеет значение, является ли класс «вашим» или нет? Что значит «мое» даже _mean_? –

+0

Шахта, так как у меня есть доступ к исходному коду и вы можете изменить и перекомпилировать их. – Amicable

+1

Мой вопрос: почему, по-вашему, вам нужно его изменить? –

ответ

1

Поскольку вы не можете изменить класс, которому не являетесь исходным кодом, создайте свой собственный DTO с необходимыми атрибутами сериализации, а затем используйте Automapper для передачи данных полей взад и вперед между ними.

+0

Благодарим вас за это, Automapper выглядит так, как будто он может сделать именно то, что я ищу. :) – Amicable

+0

Принято, так как это то, что я искал, мне это просто не нужно. – Amicable

Смежные вопросы