2012-01-19 3 views
0

У меня есть модели, которые используются для сериализации данных в xml.Создать наблюдаемую модель для привязки данных

Ex

public class File : IFile 
    { 

     [XmlAttribute] 
     public string ObjectId; 


     public string OriginalFileName { get; set; } 
     public string FileName { get; set; } 
     public int Size { get; set; } 
     public string Note { get; set; } 


     public static explicit operator File(FileItem a) // explicit File to FileItem conversion operator 
     { 
      File b = new File(); // explicit conversion 

      b.ObjectId = a.ObjectId; 
      b.Note = a.Note; 
      b.FileName = a.FileName; 
      b.OriginalFileName = a.OriginalFileName; 
      b.Size = a.Size; 

      return b; 
     } 
    } 

Эти классы используются в основном для чтения и сохранения XML-документов внутри Worddocument. Внутри основного приложения мне нужны данные для наблюдения, поэтому в этом случае я использую призму, а классы наследуют от Notificationobject.

Ex

public class FileItem : NotificationObject, IFile 
    { 

     public FileItem() 
     { 

     } 

     public static explicit operator FileItem(File a) // explicit File to FileItem conversion operator 
     { 
      FileItem d = new FileItem(); // explicit conversion 

      d.ObjectId = a.ObjectId; 
      d.Note = a.Note; 
      d.FileName = a.FileName; 
      d.OriginalFileName = a.OriginalFileName; 
      d.Size = a.Size; 

      return d; 
     } 



     private string _objectid; 
     public string ObjectId 
     { 
      get { return _objectid; } 
      set 
      { 
       if (!value.Equals(_objectid)) 
       { 
        _objectid = value; 
        this.RaisePropertyChanged(() => this.ObjectId); 
       } 
................. 

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

Любые идеи о том, как упростить это.

ответ

0

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

+0

Кажется хорошей идеей, я прочитал немного о себе и получил его с Нугэтом. Я не понял, как получить последние образцы тысяч, но кажется, что они ищут – klashagelqvist

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