如何在 ASP.NET 和 C# 中重用这个基于 Ultimate RestSharp Client 的 API 客户端?

Joh*_*ate 5 c# restsharp

我是一名新的 C# 开发人员,我正在尝试重用我基于ASP.NET 中的 Ultimate RestSharp 客户端和本文中解释的C# 构建的 API 客户端。我能够创建本文中提到的所有类和先决条件,但我现在无法在应用程序中的某些位置使用客户端类

这是客户端代码:

public class UsersClient : BaseClient
{
    public UsersClient (ICacheService cache, IDeserializer serializer, IErrorLogger errorLogger)
        : base(cache, serializer, errorLogger, "http://yourBaseUrl.com") { }

    public User GetByID(int id)
    {
        RestRequest request = new RestRequest("users/{id}", Method.GET);
        request.AddUrlSegment("id", id.ToString());
        return GetFromCache<User>(request, "User" + id.ToString());
    }

}
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试在某些 ASP.NET 页面的代码隐藏中调用 GetById 方法时,我无法看到或访问该方法,我也不知道为什么。这是我用来访问该方法的代码行:

string userId = "JohnA";
var user = UsersClient.GetById(userId);
Run Code Online (Sandbox Code Playgroud)

那么如何访问这个方法呢?或者如何在我的应用程序上使用 API 客户端?

更新:

我仍然在努力使用这个 API 客户端。您能否告诉我如何使用它以及如何应用依赖项注入?

Wok*_*kuo 1

您无法像这样访问非静态方法。首先,您必须初始化 UsersClient 对象。

ICacheService cache = //initialize cache here
IDeserializer deserializer = //initialize deserializer here
IErrorLogger errorLogger = //initialize errorLogger here
UsersClient usersClient = new UsersClient(cache, deserializer, errorLogger); 

string userId = "JohnA"; 
var user = usersClient.GetById(userId);
Run Code Online (Sandbox Code Playgroud)

我建议学习依赖注入和控制反转等设计模式(已经使用过,不确定是有意的还是无意识的),并在这种情况下使用它们。