【问题标题】:How to reference assembly 'System.Threading,如何引用程序集'System.Threading,
【发布时间】:2017-06-01 03:12:03
【问题描述】:

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

“'Task'类型存在于'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;

那么我该如何引用程序集,或者更正错误呢?

【问题讨论】:

  • 将实际 URL 放在支持论坛中并不是一个好主意,因为这可能会导致无根据的访问被误用。
  • 你的目标框架/.NET 版本是什么?
  • 目标框架是4.5

标签: c# asp.net


【解决方案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。

【讨论】:

  • 我按照你说的做了,我得到了这个错误:CS0234:命名空间'System.Threading'中不存在类型或命名空间名称'Task'(你是否缺少程序集引用?)
  • 我更新了它,它已更正,但我仍然收到以前的错误消息:CS0012:类型 'System.Threading.Tasks.Task`1' 在程序集中定义为未参考。您必须添加对程序集的引用 'System.Threading, Version=1.0.2856.102, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
【解决方案2】:

尝试删除对System.Runtime的引用,然后重新编译。

您可以阅读有关该问题的更多信息here

【讨论】:

  • 我的问题是获取 NuGet 包资源管理器
  • 我设法获得了 NuGet 包资源管理器,我尝试按照您在帖子中的说明进行操作,但资源管理器在 System.Threading 的框架程序集参考中没有显示 System.Runtime。
猜你喜欢
  • 2018-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-05
相关资源
最近更新 更多