我正在填充动态对象并将该对象作为参数发送到不同程序集中的泛型类。这两个程序集都包含Microsoft.CSharp.dll引用。
然后,接受动态对象作为参数的类包含将此动态对象转换为json字符串并将其发送到外部API的逻辑。我正在使用 Restclient 来发送请求。
例如:A类填充动态对象,B类发送Api请求。
dynamic body = new ExpandoObject();
问题是我收到来自B类外部API的响应的错误请求,但是当我从A类发送请求时它正在按预期工作。
编辑:我已经复制了B类的代码并粘贴到了我正在制作动态对象的A类中。奇怪,但这次我得到了以下代码的成功回应。
此处 requestModel 是动态对象,我将此正文传递给另一个类,如下所示:
public class service<Model> where Model : class
{
public Response Invoke(Model requestModel, ApiConfiguration configuration)
{
var client = new RestClient("http://abc");
var restRequest = new RestRequest();
client.Authenticator = new HttpBasicAuthenticator("@12", "M0a981");
restRequest.Method = Method.POST;
restRequest.AddParameter("Application/Json", JsonConvert.SerializeObject(requestModel), ParameterType.RequestBody);
Logger.Instance.WriteLog("Request body : " + JsonConvert.SerializeObject(requestModel));
var tbaResponse = client.Execute(restRequest);
}
}
在不同程序集之间传递动态对象是否存在一些问题。