在asp.net中动态加载程序集

时间:2011-03-28 18:47:27

标签: c# asp.net assemblies dynamic

我目前正在尝试从asp.net httphandler中动态加载程序集。我有一个dll,它是作为一个单独的库的一部分构建的,我的项目包含对所述DLL的引用,并与CopyLocal的服务一起部署为true。我创建了一个一次性对象来获取程序集路径,我已经在Temporary ASP.NET Files文件夹中确认了dll的存在,但调用GetTypes()会引发异常。

我做的事情如下:

string assemblyPath = new SomeClassInAssembly().GetType().Assembly.Location;
Type[] types = System.Reflection.Assembly.LoadFrom(assemblyPath).GetTypes();

我无法将程序集添加到GAC,因为这会破坏我尝试使用该服务的功能(想想在必要时加载程序集的沙盒服务),到目前为止我找不到任何能解决问题的东西。

供参考我正在使用VS 2008。

2 个答案:

答案 0 :(得分:1)

由于您使用对程序集的引用编译Web应用程序,因此我不认为您需要使用Assembly.LoadFrom加载它。 GetTypes应该可以使用:

Type[] types = typeof(SomeClassInAssembly).Assembly.GetTypes();

答案 1 :(得分:0)

Doh,我终于连接到异常并查看了LoaderMessage,我错过了一个引用的程序集。