小编Nic*_*ith的帖子

C#通用接口和工厂模式

我正在尝试创建一个Generic接口,其中一个方法的参数类型由泛型定义

编辑

我意识到我可能通过在Factory创建方法中指定一个类型参数来混淆问题后稍微改变了这个问题.我有两种类型的API调用,我需要对第三方API.第一个使用ID作为int从API检索记录.第二个也从API检索记录,但Id是一个字符串(guid).我有一个类用于每个记录类型(ClientEntity和InvoiceEntity),它们都实现了一个通用接口,我在其中传递Id类型

这是我在其中声明一个带有id参数的方法的接口

public interface IGeneric<TId>
{
    void ProcessEntity(TId id);
}
Run Code Online (Sandbox Code Playgroud)

我在几个类中实现了接口,一个将id设置为int,另一个设置为字符串.

public class ClientEntity: IGeneric<int> // Record with Id that is an int
{
    public void ProcessEntity(int id)
    {
        Console.WriteLine(id);
        // call 3rd party API with int Id
    }
}

public class InvoiceEntity: IGeneric<string> // Record with Id that is a string (guid)
{
    public void ProcessEntity(string id)
    {
        Console.WriteLine(id);
        // call 3rd party API with string Id
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道的是如何在工厂模式中使用它?

public static class GenericFactory
{
    public static …
Run Code Online (Sandbox Code Playgroud)

c# generics factory-pattern

13
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×1

factory-pattern ×1

generics ×1