C#:将类的实例从一个模块传递到另一个模块

C#:将类的实例从一个模块传递到另一个模块,c#,types,module,interface,dependencies,C#,Types,Module,Interface,Dependencies,我有两个模块,可以同时出现在target中,也可以单独出现。让我们称它们为ModuleA和ModuleB ModuleA有一个特定类型,我想在ModuleB中使用它,我们称之为SpecificType。但是,我仍然希望能够自己包含ModuleB(没有ModuleA) 是否可以通过使用接口/协议来解决此问题?我感兴趣的是,具有特定接口的对象将作为参数传递,因此不可能传递例如字符串 模块b中的示例方法: // SpecificType is coming from ModuleA public v

我有两个模块,可以同时出现在target中,也可以单独出现。让我们称它们为
ModuleA
ModuleB

ModuleA
有一个特定类型,我想在
ModuleB
中使用它,我们称之为
SpecificType
。但是,我仍然希望能够自己包含
ModuleB
(没有
ModuleA

是否可以通过使用接口/协议来解决此问题?我感兴趣的是,具有特定接口的对象将作为参数传递,因此不可能传递例如字符串

模块b
中的示例方法:

// 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) {

}

如果您有一些模块需要共享接口/类型,但您不希望这些模块之间存在依赖关系,那么您需要一个定义了接口/类型的其他模块

通常,此其他模块的前缀为
Abstractions
,如或

就你而言:

模数偏差

公共接口是SpecificTypeInterface
{
void Foo();
}

公共类SpecificType:isSpecificTypeInterface
{
公共图书馆
{
Console.WriteLine(“来自ModuleA”)
}
}
模B

public void MyMethod(isSpecificTypeInterface spe)
{
spe.Foo();
}

ModuleA和ModuleB对ModuleAbstractions具有依赖性。

如果您有一些模块需要共享接口/类型,但您不希望这些模块之间存在依赖性,则需要定义接口/类型的其他模块

通常,此其他模块的前缀为
Abstractions
,如或

就你而言:

模数偏差

公共接口是SpecificTypeInterface
{
void Foo();
}

公共类SpecificType:isSpecificTypeInterface
{
公共图书馆
{
Console.WriteLine(“来自ModuleA”)
}
}
模B

public void MyMethod(isSpecificTypeInterface spe)
{
spe.Foo();
}

ModuleA和ModuleB依赖于ModuleAbstractions。

这个问题是关于传递类型(尝试泛型)还是关于程序集(您可以创建C程序集来包含基本类型,A、B使用它)?无法命名变量
object
,因为它是一个关键字。问题是在不依赖第一个模块的情况下,在另一个模块中使用一种类型的模块。因此,我认为它可以通过使用interfaces@RichardTopchii,当然-您需要使用接口和依赖项注入。然后,在执行过程中可以通过一些CI注入特定的模块实现。调用方(即应用程序目标)是否必须手动链接ModuleB接口和ModuleA类?这个问题是关于传递类型(尝试泛型)还是关于程序集(您可以创建C程序集来包含基本类型,A、B使用它)?无法命名变量
object
,因为它是一个关键字。问题是在不依赖第一个模块的情况下,在另一个模块中使用一种类型的模块。因此,我认为它可以通过使用interfaces@RichardTopchii,当然-您需要使用接口和依赖项注入。然后,在执行过程中可以通过某些CI注入特定的模块实现。调用方(即应用程序目标)是否必须手动链接ModuleB接口和ModuleA类?