Зависимости и XML-сериализация - PullRequest
1 голос
/ 08 апреля 2011

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

public void Update()
{
    if (App.Settings.AutoCacheImages) CacheImages();
    ...
]

Так что я бы предпочел создать такой интерфейс:

public interface IFeedSettings
{
    bool AutoCacheImages { get; set; }
    ...
}

И убедитесь, что мой объект получает ссылку во время строительства:

private IFeedSettings _settings;

public Feed(IFeedSettings settings)
{
    _settings = settings;
}

Теперь проблема в том, что для Xml-сериализации требуется конструктор без параметров, так как лучше всего подойти к этому, чтобы после десериализации все экземпляры Feed имели ссылку на мои глобальные настройки?

( У меня есть иерархическая структура данных в виде папок / файлов, использующая составной шаблон )

1 Ответ

0 голосов
/ 09 апреля 2011

Пояснение:

У вас есть объект типа Feed. Вы хотите сериализовать это, но вы не можете использовать конструктор не по умолчанию. Вместо этого вы можете создать FeedModel с конструктором без параметров и общими свойствами для всех данных, которые вы хотите отправить. Затем вы можете использовать AutoMapper для быстрой передачи данных из вашего экземпляра Feed в экземпляр FeedModel и сериализации класса модели.

...