如何引用程序集&System;线程,

时间:2017-01-17 06:49:25

标签: c# asp.net

我的代码如下所示在我的应用程序中,起初它无法编译,它显示错误消息为

  

"类型'任务'存在于' 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;

那么如何引用程序集或更正错误?

2 个答案:

答案 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