1

ヘルプ、ここにアイデアがあります:

External.dll
IMyClass NewCreated = (IMyClass)Activator.CreateInstance(Namespace.MyClass).UnWrap();

-----------------------------------------

Asp.Net WebSite
    App_Code
      Namespace.MyClass.cs
    Bin
      External.dll

それも可能ですか?

私は、次のような多くの可能な組み合わせを試しました。

Assembly.GetCallingAssembly().CreateInstance("Namespace.MyClass")
Activator.CreateInstance(AppDomain.CurrentDomain,"Namespace","Namespace.MyClass")
Assembly.GetExecutingAssembly().CreateInstance("Namespace.MyClass")
4

2 に答える 2

1

BuildManager.CodeAssembliesプロパティを使用して、App_Codeディレクトリにコンパイルされているすべてのアセンブリ名を一覧表示できます。あなたはその方法であなたが必要とすることを達成することができるかもしれません。

App_Codeの問題は、すべてが動的にコンパイルされて、本質的に一時的なアセンブリになることです。これには、一時的なアセンブリ名が付いています。これにより、アセンブリ名またはパスをハードコーディングできなくなります。

于 2010-04-14T23:41:59.763 に答える
0

BuildManager.CodeAssembliesプロパティを使用して、すべてのアセンブリ名を一覧表示する必要はありません。代わりに以下を使用してください:

type = "Namespace.MyClass、App_Code"を使用して、クラスを参照します。

于 2014-05-19T14:38:04.440 に答える