小编Sha*_*awn的帖子

在开发时“嘲笑”一个类

我遇到了这个问题,我需要进行外部 API 调用,但是在生产中我必须使用 API 调用的证书,而在开发中我实际上并不需要证书。我想知道如何实现一个解决方案,可以将生产代码和开发代码分开,这样我就不必注释掉该部分并且可能忘记更改它。任何提示将不胜感激!

public async Task<GetPersonResponse> PostPerson(PersonDto dto) 
{
    try {
        var httpHandler = new HttpClientHandler();

        var certificate = new X509Certificate2(
            Path.Join(_certOptions.Path, _certOptions.Name),
            _certOptions.Password, 
            X509KeyStorageFlags.MachineKeySet);

        httpHandler.ClientCertificates.Add(certificate);

        var client = new HttpClient(httpHandler);

        var soapRequest = GenerateRequest(dto);

        var request = new HttpRequestMessage() {
            RequestUri = new Uri(_options.Value.URL),
            Method = HttpMethod.Post,
            Content = new StringContent(soapRequest.ToString(), Encoding.UTF8, "text/xml"),
        };

        var response = await client.SendAsync(request);
    }
}

Run Code Online (Sandbox Code Playgroud)

.net c#

2
推荐指数
1
解决办法
259
查看次数

标签 统计

.net ×1

c# ×1