【发布时间】:2015-02-15 17:48:17
【问题描述】:
我会使用 AppDomains 来管理不同程序集中的对象:
object _Instance = _AppDomain.CreateInstanceFromAndUnwrap(assemblyFileNamePath, typeName);
我定义了一个这样的接口
interface IInvokable { int Invoke(string[] args); }
这样我就可以在任何实现它的对象上调用方法
(_Instance as IInvokable).Invoke(new string[]{methodName,parameters});
我不喜欢这样,因为 AFAIK 我生成的任何程序集都必须引用我定义 IInvokable 的程序集
问题:是否有任何内置接口可供我使用,可能是专门用于此目的,或者用于用户定义的目的。我也愿意接受有关如何解决问题的其他建议。
【问题讨论】:
-
只使用反射获取类型和方法并调用它?所以创建实例并解包 ... GetType ... GetMethod("Invoke") ... 然后 MethodInfo.Invoke 它。