Это лучшая ошибка в моей жизни!Благодаря Майклу, проблема была в DI (Unity)!Я зарегистрировал свою зависимость:
public static void RegisterTypes(IUnityContainer container)
{
container.RegisterType<MySqlContext>(new InjectionConstructor("MySqlGlobalConnectionTest"));
container.RegisterType<ApplicationContext>(new InjectionConstructor("ApplicationConnectionTest"));
container.RegisterType<MsSqlReadOnlyContext>(new InjectionConstructor("MsSqlApplicationConnection"));
container.RegisterType<IUnityOfWork, UnityOfWork>();
}
И проблема была в ПОРЯДКЕ реализации!
public class UnityOfWork : IUnityOfWork
{
private MySqlContext mySqlContext;
private ApplicationContext applicationContext;
private MsSqlReadOnlyContext msSqlReadOnlyContext;
public UnityOfWork(
ApplicationContext applicationContext,
MsSqlReadOnlyContext msSqlReadOnlyContext,
MySqlContext mySqlContext // <-- When I put on the first place - there is an error of definition of factory!
)
{
this.mySqlContext = mySqlContext;
this.applicationContext = applicationContext;
this.msSqlReadOnlyContext = msSqlReadOnlyContext;
}
}
Это очень странная ошибка.Видимо какая-то проблема с UnityDI