我的代码如下所示在我的应用程序中,起初它无法编译,它显示错误消息为
"类型'任务'存在于' System.Threading,Version = 1.0.2856.102,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'和' mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089' "
所以我删除了我通过Nuget安装的"System.Threading"
,然后新的错误消息为:
CS0012:类型' System.Threading.Tasks.Task`1'在未引用的程序集中定义。您必须添加对程序集的引用,System.Threading,Version = 1.0.2856.102,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'。
将错误指向下面代码中的以下行
Task<HttpResponseMessage> t = client.PostAsync("https://Mypay.com/api/", content);
这是我用过的代码:
var client = new HttpClient();
var values = new List<KeyValuePair<string, string>>();
values.Add(new KeyValuePair<string, string>("task", task));
values.Add(new KeyValuePair<string, string>("merchant", merchant_id));
values.Add(new KeyValuePair<string, string>("ref", id));
// include other fields
var content = new FormUrlEncodedContent(values);
Task<HttpResponseMessage> t = client.PostAsync("https://Mypay.com/api/", content);
t.Wait();
var response = t.Result;
那么如何引用程序集或更正错误?
答案 0 :(得分:1)
这是因为类Task
是在多个引用中定义的。因此,您可以指定与其命名空间相关的那个。为此,您必须使用如下所示的完全限定名称:
System.Threading.Tasks.Task<HttpResponseMessage> responseMEssage = client.PostAsync("https://voguepay.com/api/", content);
fully qualified name由程序集名称组成 规范,命名空间规范和类型名称。输入名称 规范由Type.GetType等方法使用, Module.GetType,ModuleBuilder.GetType和Assembly.GetType。
答案 1 :(得分:0)
尝试删除对System.Runtime
的引用,然后重新编译。
您可以详细了解该问题here。