Я работаю над своей пользовательской CMS. У меня есть основное приложение и модули. Моя проблема в том, что всякий раз, когда я загружаю представление из своего модуля, представление не может найти модель, назначенную этому представлению.MVC 4 MEF View не может найти @Model с другой сборки
CS0246: тип или пространство имен имя «EAccounting» не может быть найден (вы пропали без вести с помощью директивы или ссылка на сборку?)
Вид этого модуля находится в ~/Modules/EAccounting/Views /. Я могу назвать контроллер модуля без проблем, и я могу найти вызвать вид из контроллера без проблем, но сам вид не может найти модель из загруженных сборок:
@model EAccounting.Models.Transaction
Это код который загружает сборки:
public class SafeDirectoryCatalog : ComposablePartCatalog
{
private readonly AggregateCatalog _catalog;
public SafeDirectoryCatalog(string directory)
{
var files = Directory.EnumerateFiles(directory, "*.dll", SearchOption.AllDirectories);
_catalog = new AggregateCatalog();
foreach (var file in files)
{
try
{
var asmCat = new AssemblyCatalog(file);
//Force MEF to load the plugin and figure out if there are any exports
// good assemblies will not throw the RTLE exception and can be added to the catalog
if (asmCat.Parts.ToList().Count > 0)
{
_catalog.Catalogs.Add(asmCat);
}
}
catch (ReflectionTypeLoadException)
{
}
catch (BadImageFormatException)
{
}
}
}
public override IQueryable<ComposablePartDefinition> Parts
{
get { return _catalog.Parts; }
}
}
Я уверен, что это ничего плохого в загрузке сборки. Также, если я перемещаю свою сборку модуля DLL в мою основную папку bin (~/bin /), она отлично работает, поэтому проблема должна заключаться в том, что представление может выполнять поиск только в основной папке/bin.
Как настроить мою систему так, чтобы представление могло искать сборку из другой папки? Примечание: сборка загружается во время выполнения tho.
У меня такая же проблема .. нашли ли вы решение? – marsop