У меня довольно прямолинейный сценарий, который я пытаюсь решить, но я нажимаю несколько кирпичных стен с Виндзором - возможно, я пытаюсь решить проблему не так путь?Зависимость от зависания Замка Виндзора - восстановление зависимостей для существующего экземпляра
У меня есть тип, который называется Foo следующим образом:
public class Foo
{
[NonSerialized]
private IBar bar;
public IBar Bar
{
get { return this.bar; }
set { this.bar = value; }
}
public Foo(IBar bar)
{
}
}
я создаю экземпляр через контейнер обычным способом:
var myFoo = container.Resolve<Foo>();
Зависимость IBar регистрируется с контейнером и получает решена, когда объект создается. Теперь, когда тип был создан, мне нужно его сериализовать, и я не хочу сериализовать IBar, поэтому он помечен атрибутом NonSerialized.
Затем мне нужно десериализовать объект и вернуть его в прежнее состояние. Как достичь этого с помощью Castle Windsor? У меня уже есть экземпляр, он просто не хватает его зависимостей.
Если бы я использовал Unity, я бы использовал BuildUp() для решения проблемы, но в этом случае я хочу использовать Castle Windsor.
Нет FooData, есть только бар. Бар не может быть сериализован. Бар даже не нужно открывать, но он должен быть восстановлен, когда объект десериализован. – Steve
Пока нет 'FooData'. Но вы собираетесь его создать; вот что я говорю ;-) – Steven
Я не буду следовать за тобой! IBar - это, вероятно, репозиторий, который Foo использует для загрузки/сохранения данных. Как я могу получить свой репозиторий, или Bar, обратно в Foo post-deserialize? – Steve