我正在使用自定义CMS。我有主要的应用程序和模块。我的问题是,每当我从模块加载视图时,视图都找不到分配给该视图的模型。
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 /),它可以正常工作,所以问题必须是视图只能在main /中搜索程序集bin文件夹。
如何配置系统以便视图可以从另一个文件夹中搜索程序集?注意:程序集在运行时加载。
答案 0 :(得分:0)
此外,您的帖子还有几个月的时间,我认为以下链接可能会回答您的问题: http://shazwazza.com/post/Developing-a-plugin-framework-in-ASPNET-with-medium-trust
我希望这会对你有所帮助。