Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="UTF-8"?>
- <Ticket>
- <Age>70254</Age>
- <ArchiveFlag>вне архива</ArchiveFlag>
- <State>В работе</State>
- <StateID>6</StateID>
- <StateType>Таймер</StateType>
- <TicketID>7</TicketID>
- <TicketNumber>2018121710000019</TicketNumber>
- <Title>Название</Title>
- <Type>Билет на продажу</Type>
- <TypeID>1</TypeID>
- </Ticket>
- [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
- [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
- public partial class Ticket
- {
- public ulong Age { get; set; }
- public string ArchiveFlag { get; set; }
- public string State { get; set; }
- public uint StateID { get; set; }
- public string StateType { get; set; }
- public ulong TicketID { get; set; }
- public string TicketNumber { get; set; }
- public string Title { get; set; }
- public string Type { get; set; }
- public uint TypeID { get; set; }
- }
- public partial class StateModel
- {
- public string State { get; set; }
- public uint StateID { get; set; }
- public string StateType { get; set; }
- }
- [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
- [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
- public partial class Ticket
- {
- public ulong Age { get; set; }
- public string ArchiveFlag { get; set; }
- public StateModel State { get; set; }
- public ulong TicketID { get; set; }
- public string TicketNumber { get; set; }
- public string Title { get; set; }
- public string Type { get; set; }
- public uint TypeID { get; set; }
- }
- var node =@"<?xml version="1.0" encoding="UTF-8"?>
- <Ticket>
- <Age>70254</Age>
- <ArchiveFlag>вне архива</ArchiveFlag>
- <State>В работе</State>
- <StateID>6</StateID>
- <StateType>Таймер</StateType>
- <TicketID>7</TicketID>
- <TicketNumber>2018121710000019</TicketNumber>
- <Title>Название</Title>
- <Type>Билет на продажу</Type>
- <TypeID>1</TypeID>
- </Ticket>";
- Ticket res;
- using (TextReader reader = new StringReader(node))
- {
- var serializer = new XmlSerializer(typeof(Ticket));
- res = (Ticket)serializer.Deserialize(reader);
- Console.WriteLine($"Статус|{res.State.State}|");
- }
- public class State:IState
- {
- // имплементация полей интерфейса IState
- }
- public class NewTiket:ITicket
- {
- // имплементация полей интерфейса ITicket
- //...
- public State State {get;set;}
- }
- public static class ObjectExtention
- {
- public static void CopyPropertiesFrom<T>(this T source, T target)
- {
- foreach (var info in typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public))
- info.SetValue(source, info.GetValue(target, null), null);
- }
- }
- var result = new NewTiket();
- // копируем поля интерфейса ITicket
- ((ITicket)result).CopyPropertiesFrom(xmlTiket);
- result.State = new State();
- // копируем поля интерфейса IState
- ((IState)result.State).CopyPropertiesFrom(xmlTiket);
- NewTiket newTiket = xmlTiket;
- public partial class StateModel
- {
- public string State { get; set; }
- public uint StateID { get; set; }
- public string StateType { get; set; }
- }
- [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
- [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
- public partial class Ticket:StateModel
- {
- public ulong Age { get; set; }
- public string ArchiveFlag { get; set; }
- public ulong TicketID { get; set; }
- public string TicketNumber { get; set; }
- public string Title { get; set; }
- public string Type { get; set; }
- public uint TypeID { get; set; }
- }
- interface IAge
- {
- ulong Age { get; set; }
- ulong AgeTimeUnix { get; set; }
- string ArchiveFlag { get; set; }
- }
- public partial class TicketAge:IAge
- {
- public ulong Age { get; set; }
- public ulong AgeTimeUnix
- {
- get
- {
- throw new NotImplementedException();
- }
- set
- {
- throw new NotImplementedException();
- }
- }
- public string ArchiveFlag { get; set; }
- }
- interface IState
- {
- string State { get; set; }
- uint StateID { get; set; }
- string StateType { get; set; }
- }
- public partial class TicketState:TicketAge,IState
- {
- public string State { get; set; }
- public uint StateID { get; set; }
- public string StateType { get; set; }
- }
- interface ITicket
- {
- ulong TicketID { get; set; }
- string TicketNumber { get; set; }
- string Title { get; set; }
- string Type { get; set; }
- uint TypeID { get; set; }
- }
- [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
- [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
- public partial class Ticket:TicketState, ITicket
- {
- public ulong TicketID { get; set; }
- public string TicketNumber { get; set; }
- public string Title { get; set; }
- public string Type { get; set; }
- public uint TypeID { get; set; }
- }
Add Comment
Please, Sign In to add comment