首页 > 解决方案 > 如何为从 nuget 引用的库创建 Singleton 实例

问题描述

任务是多次调用第三方服务/包装器并获得响应。下面是示例代码,我试图弄清楚如何为服务创建单例实例。

class Program
{
    static void Main(string[] args)
    {

        List<string> trips = new List<string>();
        trips.Add("ABC");
        trips.Add("XYZ");
        foreach (string s in trips) {
            Test.TestMethod(s);
        }
    }
}

public static class Test
{
    public static bool TestMethod(string trip)
    {
        BridgeApiClient bridgeApiClient = new BridgeApiClient("http://localhost/Service.svc", "username", "password");
        TripRequest tr = new TripRequest();
        tr.TripNumber = trip;

        var response = bridgeApiClient.GetTrip(tr);

        return true;
    }
}

标签: c#singleton

解决方案


您可以只声明一个static成员变量并使用它:

public static class Test
{
    private static readonly BridgeApiClient bridgeApiClient = new BridgeApiClient("http://localhost/Service.svc", "username", "password");

    public static bool TestMethod(string trip)
    {
        TripRequest tr = new TripRequest();
        tr.TripNumber = trip;
        var response = bridgeApiClient.GetTrip(tr);
        return true;
    }
}

推荐阅读