Код, который обеспечивает такое поведение: < /p>
Код: Выделить всё
builder = new ContainerBuilder();
var drTypes = typeFinder.FindClassesOfType();
var drInstances = new List();
foreach (var drType in drTypes)
drInstances.Add((IDependencyRegistrar) Activator.CreateInstance(drType));
//sort
drInstances = drInstances.AsQueryable().OrderBy(t => t.Order).ToList();
foreach (var dependencyRegistrar in drInstances)
dependencyRegistrar.Register(builder, typeFinder, config);
builder.Update(container);
Код: Выделить всё
public virtual IList GetAssemblies()
{
var addedAssemblyNames = new List();
var assemblies = new List();
if (LoadAppDomainAssemblies)
AddAssembliesInAppDomain(addedAssemblyNames, assemblies);
AddConfiguredAssemblies(addedAssemblyNames, assemblies);
return assemblies;
}
Код: Выделить всё
private void AddAssembliesInAppDomain(List addedAssemblyNames, List assemblies)
{
foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
{
if (Matches(assembly.FullName))
{
if (!addedAssemblyNames.Contains(assembly.FullName))
{
assemblies.Add(assembly);
addedAssemblyNames.Add(assembly.FullName);
}
}
}
}
'Нет зарегистрированных услуг' < /p>
< /blockquote>
, когда вы выполняете, вызывает у меня есть явное. /> Вся система работает просто, если я добавляю ссылку на любую библиотеку из проекта MVC, но для слоистого архитектурированного приложения это не является наилучшей практикой: мой MVC не должен знать ничего о DataLayer или других услугах с низким уровнем. без ссылки на все сборки непосредственно из основного проекта MVC?
Подробнее здесь: https://stackoverflow.com/questions/358 ... r-assembly
Мобильная версия