Создать наблюдаемую модель для привязки данных - PullRequest
0 голосов
/ 19 января 2012

У меня есть модели, которые используются для сериализации данных в 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-документов внутри документа Word. Внутри основного приложения мне нужны данные, чтобы их можно было наблюдать, поэтому в этом случае я использую призму, а классы наследуются от объекта 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-файлы в классе File, а затем мне нужно преобразовать его в класс FileItem, а когда я хочу сохранить его обратно в xml, мне нужно снова выполнить обратное преобразование. Это кажется немного ненужным для меня. Я мог бы подумать о решении, где я сериализую непосредственно в FileItem, но мне нужно, чтобы File был простым, поскольку он определен в сборке, которая используется другими компонентами, которым не требуется объект уведомления, и где сборки призмы не будут установлены.

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

1 Ответ

0 голосов
/ 19 января 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...