0

これは C# DLL の私のクラスです

namespace MyNS
{
    public class MyClass
    {
        public static int Execute(string logKey, 
                                  string key, 
                                  XmlNode xmlPars)
        {
            return 0
        }
    }
}

実行時に DLL をロードし、Class Type を _type 変数にロードします。しかし、次のように Windows サービスから関数 Execute を呼び出すと、次のようになります。

counter = (int)_type.InvokeMember("Execute", 
                                  BindingFlags.Public |
                                  BindingFlags.InvokeMethod | 
                                  BindingFlags.Static, 
                                  null, 
                                  null, 
                                  new object[] { 
                                                  logKey, 
                                                  Key, 
                                                  _xmlParams 
                                                });

「呼び出しのターゲットによって例外がスローされました」と表示されます。
ここで何が間違っていましたか?

4

1 に答える 1

1

DLL をどのようにロードしていますか。DLL を動的にロードするコードを共有していただけますか。

これがサンプルコードです。

Assembly assembly = Assembly.LoadFrom("ABC.dll");
object o = Activator.CreateInstance(assembly.GetType("ClassName"));
/// then invoke the method
于 2012-12-19T07:45:42.967 に答える