そのため、アプリケーションのメソッドを dll から外部で呼び出す方法を探しています。(以下の例を参照)これは私が試みていることですが、a)機能していない、b)機能していた場合、DynamicInvokeの呼び出しが非常に遅くなると感じています。
まず第一に、この方法でやりたい場合は、現在、callthisexternally() の戻り値の型が間違っているというエラーが発生するため、戻り値の型をどのように処理すればよいですか。
これを行うより良い方法はありますか?
--- within a a dll ---
public class mydll
{
// etc.. blah blah
public object callfromdll(string commandName, int requiredArgs, Delegate method)
{
// do stuff
// now invoke the method
return method.DynamicInvoke(method.Method.GetParameters().Select(p => p.ParameterType).ToArray());
}
}
-- within an application that's refrancing the above dll --
public someclass
{
// etc.. stuff here
mydll m = new mydll();
m.callfromdll("callthisexternally", 0, new Action(callthisexternally));
// the function to be called externally
public string callthisexternally()
{
// do stuff
return "i was called!";
}
}