gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 07:39:04 24 4
gpt4 key购买 nike

我将使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com