У меня есть 3 сборки:
- MyApp.Views (использует MyApp.Data и MyApp.Metadata)
- MyApp.Data (использует MyApp.Metadata)
- MyApp.Metadata
У меня есть интерфейс, скажем IMetadata.Затем у меня также есть реализация в MyApp.Metadata, которую я регистрирую в одноэлементном классе:
IoCContainer.Instance.Register<IMetadata, Metadata>();
Затем во время разработки я использую сборку, которая должна использовать метаданные (но это MyApp.Данные, которые разрешают тип):
IoCContainer.Instance.ResolveType<IMetadata>();
Но это не удается.IoCContainer.Instance не содержит те же интерфейсы (фактически, он пуст).Реализация синглтона действительно проста:
public class IoCContainer
{
static IoCContainer()
{
Instance = new IoCContainer();
}
public static IoCContainer Instance { get; private set; }
}
Почему-то похоже, что отдельные сборки загружаются в отдельные домены приложений (или что-то в этом роде).Кто-нибудь знает решение для этого?