首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态加载控件的ASP.net VirtualPathProvider

动态加载控件的ASP.net VirtualPathProvider
EN

Stack Overflow用户
提问于 2011-07-26 22:37:50
回答 1查看 401关注 0票数 0

我使用VirtualPathProvider来加载在编译时不存在的控件(ascx)。因此,当请求某个路径结构时,VirtualPathProvider会重写指向ascx的路径,并加载包含该控件代码的dll。

除了加载dll之外,一切都很正常。我可以加载程序集,但网站找不到它。如果我把它放在bin文件夹中,一切都很好。

要加载我正在使用的程序集:

代码语言:javascript
复制
System.Reflection.Assembly.LoadFrom(file.FullName);

如何加载此程序集以便在页面上呈现ascx时可以使用它?

同样,我可以将dll放在站点的bin文件夹中,但由于这是动态内容,我更喜欢将其全部隔离。

EN

回答 1

Stack Overflow用户

发布于 2011-07-26 22:48:24

所以你打电话给我

代码语言:javascript
复制
System.Reflection.Assembly.LoadFrom(file.FullName);

但它不会抛出异常,但在渲染ascx文件时仍然找不到您的程序集?是否确实ascx文件引用了完全限定的程序集名称?

您可能需要处理AssemblyResolve事件:

代码语言:javascript
复制
AppDomain.CurrentDomain.AssemblyResolve += OnCurrentDomainAssemblyResolve

private static Assembly OnCurrentDomainAssemblyResolve(object sender, ResolveEventArgs args)
{
    if (args.Name == "myDynamicAssemblyName") return _myPreviouslyLoadedDynamicAssemblyObtainedFromAssemblyLoadFrom;

    return null;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6831768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档