interface - .NET Framework 内置的通用接口(interface)

标签 interface appdomain

我将使用 AppDomains 来管理不同程序集中的对象,例如:

object _Instance = _AppDomain.CreateInstanceFromAndUnwrap(assemblyFileNamePath, typeName);

我定义了一个这样的接口(interface)
interface IInvokable { int Invoke(string[] args); }

这样我就可以在任何实现它的对象上调用方法
(_Instance as IInvokable).Invoke(new string[]{methodName,parameters});

我不喜欢这样,因为 AFAIK 我生成的任何程序集都必须引用我定义 IInvokable 的程序集

问题:是否有任何内置接口(interface)可供我使用,可能是专门用于此目的或用于用户定义目的的接口(interface)。我也愿意接受有关如何解决问题的其他建议。

最佳答案

即使有这样的接口(interface),使用它也是一个坏主意。每个接口(interface)都是一个契约,并且具有意义。接口(interface)的定义可能会随着时间而改变。例如,在 .NET 中,具有相同成员的不同接口(interface),但具有不同的名称、命名空间和程序集。当您的旧 WPF .NET 4.0 应用程序在升级到 .NET 4.5 时无法编译时,我们已经看到 .NET 4.5 中的向后不兼容更改。所以我个人建议坚持你目前的方法。

但是,如果您仍然想按照自己的方式进行操作,那么您可以尝试 ICommand 并使用 Func ;) 。

而且我也不建议像 ta.speot.is 所建议的那样做一个额外的反射操作,因为反射操作对计算资源来说很困难并且类型安全性较低(你会丢失一些编译时检查)。

熟悉 MEF 也会对您有所帮助。 .

关于interface - .NET Framework 内置的通用接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27521194/

相关文章:

PHP 子类不能实现相同的接口(interface)父类实现

c# - 类与接口(interface)

delphi - 我可以创建一个从 Delphi 中的类和接口(interface)继承的类吗?

c# - 如何在新的 AppDomain 中远程加载 .NET DLL

c# .NET 在保持相同 session 的同时加载/卸载程序集

c# - 返回类实现的接口(interface)类型 C#

java - 基于访问器方法强制执行严格继承

.net - 混合 MarshalByRefObject 和 Serializable

c#-4.0 - 在不同线程上使用应用程序域 self 更新应用程序

c# - 受限 AppDomain 中的代码访问安全异常