【发布时间】:2021-01-18 00:53:24
【问题描述】:
我有两个模块,它们可以同时存在于目标中,也可以单独存在。我们称他们为ModuleA 和ModuleB。
ModuleA 有一个特定的类型,我想在ModuleB 中使用它,我们称之为SpecificType。但是,我仍然希望能够单独包含 ModuleB(没有 ModuleA)。
是否可以通过使用接口/协议来解决此问题?我感兴趣的是具有特定接口的对象将作为参数传递,因此不可能传递例如一个字符串。
ModuleB中的示例方法:
// SpecificType is coming from ModuleA
public void MyMethod(SpecificType myVariableName) {
}
我可能想要的是类似这样的东西:
// SpecificType is coming from ModuleA, SpecificTypeInterface from ModuleB
// SpecificType implicitly conforms to SpecificTypeInterface
public void MyMethod(SpecificTypeInterface myVariableName) {
}
【问题讨论】:
-
这个问题是关于传递类型(尝试泛型)还是关于程序集(您可以创建 C 程序集以包含基本类型并且 A、B 使用它)?
-
你不能命名变量
object,因为它是一个关键字。 -
问题是关于在另一个模块中使用一个模块的类型而不依赖于第一个模块。所以我认为它可以通过使用接口来解决
-
@RichardTopchii,当然——你需要使用接口和依赖注入。然后可以在执行过程中通过一些 CI 注入具体的模块实现。
-
调用者(即应用程序目标)是否必须手动链接 ModuleB 接口和 ModuleA 类?
标签: c# types module interface dependencies