gpt4 book ai didi

c# - 从单个类公开不同的接口(interface)

转载 作者:太空宇宙 更新时间:2023-11-03 22:06:51 25 4
gpt4 key购买 nike

我们正在尝试在 DAL 之上构建某种层,以便使用泛型公开特定存储库方法的接口(interface)。

例如:

public interface A
{
void Do_A();
}

public interface B
{
void Do_B();
}

public void Main()
{
Exposer<A>.Do_A();
Exposer<B>.Do_B();
}

这有可能吗?

最佳答案

从技术上讲,这不是“单一类”,因为 Exposer<A>是不同的TypeExposer<B> ;然而,最终,这与大多数 IoC/DI 容器看起来并没有太大不同......如果这是,比如说,StructureMap(纯粹为了示例),您可能会考虑:

container.GetInstance<A>().Do_A();
container.GetInstance<B>().Do_B();

当然,您需要配置容器以了解具体的位置 AB实现来自!哪个用于 StructureMap is shown here , 但有 plenty to choose from .

如果您的意思是直接,那么:不。你不能:

class Exposer<T> : T {...} // non-working code to implement the interface T

不过,您可以上一些课:

class Exposer : A, B {...}

然后转换:

A a = Exposer;
a.Do_A();
B b = Exposer;
b.Do_B();

关于c# - 从单个类公开不同的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8137423/

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