我应该如何为dnx451和dnxcore50引用HttpClient?

时间:2015-06-12 00:38:16

标签: c# .net asp.net-core dotnet-httpclient .net-core

我应该如何使用HttpClient文件引用project.json? 我希望两个框架都可以工作:dnx451dnxcore50

这是我目前对project.json文件的尝试。 (我已经删除了不相关的部分。)

{
  "dependencies": {
    "Microsoft.Net.Http": "2.2.29",
    "Microsoft.Net.Http.Headers": "1.0.0-beta4",
    "System.Net.Http": "4.0.0-beta-22816"
  },
  "frameworks": {
    "dnx451": {
      "frameworkAssemblies": {
        "System.Net.Http": "4.0.0.0"
      }
    },
    "dnxcore50": { }
  }
}

发现我列出的依赖项是一个试错法。

使用此project.json文件,dnxcore50上下文正确解析了此示例代码块中的所有类,但无法解析HttpRequestMessageHttpMethod和{ {1}}使用MediaTypeWithQualityHeaderValue上下文:

dnx451

2 个答案:

答案 0 :(得分:9)

截至发布时间(2015年6月11日),这是dnx451dnxcore50对我有用的组合。

{
  "dependencies": {
    "Microsoft.AspNet.WebApi.Client": "5.2.3"
  },
  "frameworks": {
    "dnx451": {
      "frameworkAssemblies": {
        "System.Net.Http": "4.0.0.0"
      }
    },
    "dnxcore50": {
      "dependencies": {
        "System.Net.Http": "4.0.0-beta-22816"
      }
    }
  }
}

答案 1 :(得分:0)

我认为蒂莫西的回答是有帮助的,因为它引导我走上了正确的道路,但这个问题/答案也是几个月之久。从那以后,ASP.NET5已经有了RCed。这对我现在有用:

{
  "version": "1.0.0-*",

  ...

  "dependencies": {
    "System.Runtime": "4.0.21-beta-23516",
    "Newtonsoft.Json": "6.0.6",
    "Microsoft.CSharp": "4.0.1-beta-23516",
    "System.Net.Http": "4.0.1-beta-23516"
  },
  "frameworks": {
    "dnx451": {
      "dependencies": {
      }
    },
    "dnxcore50": {
      "dependencies": {
      }
    }
  }
}

这似乎与指定依赖项的这种更详细的方式类似:

{
  "version": "1.0.0-*",

  ...

  "dependencies": {
    "System.Runtime": "4.0.21-beta-23516",
    "Newtonsoft.Json": "6.0.6",
    "Microsoft.CSharp": "4.0.1-beta-23516"
  },
  "frameworks": {
    "dnx451": {
      "dependencies": {
        "System.Net.Http": "4.0.1-beta-23516"
      }
    },
    "dnxcore50": {
      "dependencies": {
        "System.Net.Http": "4.0.1-beta-23516"
      }
    }
  }
}

两个版本都可以正常工作,因为我能够成功调试我的HttpClient调用。

您可以忽略除System.Net.Http。

之外的其他依赖项