2016-05-17 11 views
1

ich habe eine Klasse, die ich in der Lage bin deserialisieren von XML-Daten aus SQL-Server bekommenConditional Xml Deserialisierung in C#

public class personXML 
{ 
public string lang{get;set;} 
public string name_en{get;set;} 
public string name_ar{get;set;} 
} 

ich habe auch Personenklasse

public class person 
{ 
public string name {get;set;} 
} 

ich will, dass, wenn lang =“ de "dann sollte person.name personXML.name_en sein und wenn lang =" ar ", dann sollte person.name personXML.name_ar sein. ich es von serialize personXML tun will und deserialisieren wieder persönlich Klasse helfen bitte

Antwort

0

Sie wihtout benutzerdefinierte Serialisierung nicht in der Lage sein, das zu tun: https://msdn.microsoft.com/en-us/library/ty01x675(v=vs.110).aspx

Aber was Ihr Problem, das ich einen anderen Ansatz würde vorschlagen . Sie können sowohl personXML als auch person DTO in Ihrem Code speichern. In Ihrer Datenzugriffsebene verwenden Sie nur personXML. Sie geben jedoch die zurückkehrende Person des Repositorys an.

Mit anderen Worten, Sie behalten die Serialisierung einfach, und Sie fügen eine Abstraktion hinzu, um die Konvertierung zwischen personXML und Person in ein dediziertes Repository zu verwalten.

Ich hoffe, es hilft.

+0

Bitte teilen Sie einen Testcode, es wäre eine große Hilfe –

+0

Google ist dein Freund richtig? https://msdn.microsoft.com/en-us/library/ff649690.aspx http://blog.gaufin.org/2013/01/11/repository-pattern-done-right/ – Ouarzy