小编coa*_*mee的帖子

根据请求修改请求标头C#HttpClient PCL

我目前正在使用System.Net.Http.HttpClient进行跨平台支持.

我读到,为每个请求实例化HttpClient对象并不是一个好习惯,并且应尽可能重用它.

现在我在为服务编写客户端库时遇到问题.某些API调用需要具有特定标头,有些必须不包含此特定标头.

似乎我只能操纵将随每个请求发送的"DefaultRequestHeaders".

实际发出请求时是否有一个选项,例如"client.PostAsync()"来修改仅针对特定请求的标头?

(信息:请求可以是多线程的).

提前致谢!

.net c# httpclient request-headers portable-class-library

32
推荐指数
1
解决办法
9359
查看次数

分页频繁变化的数据

我正在开发一个Web应用程序,它显示一个让我们说"线程"的列表.列表可以按线程所具有的数量进行排序.一个列表中可以有数千个线程.

应用程序需要在线程类似于一秒钟内更改超过10倍的情况下工作.此外,该应用程序分布在多个服务器上.

我无法找到一种有效的方法来为这种列表启用分页.并且我无法立即通过喜欢向用户传输整个排序列表.

  • 一旦用户转到此列表的第2页,它可能会更改,并且可能包含已从第一页列出的线程

解决方案不起作用:

  • 在客户端存储看到的线程(在移动设备上可能太多)
  • 在服务器端存储看到的线程(用户和线程太多)
  • 快照临时数据库表中的列表(更改数据太频繁,需要实际)

(如果重要我正在使用MongoDB + c#)

你会如何解决这类问题?

database sorting paging

12
推荐指数
2
解决办法
2808
查看次数

在async/await C#中苦苦挣扎

我读了很多async/await,但我仍然缺乏理解以下情况.

我的问题是,我应该像在DoSomething()或中那样实现我的"包装"方法DoSomethingAsync().

那么更好(以及为什么):我是否await在包装器方法中使用或直接返回Task?

        public static async void Main()
        {
            await DoSomething();
            await DoSomethingAsync();
        }

        private static Task DoSomething()
        {
            return MyLibrary.DoSomethingAsync();
        }

        private static async Task DoSomethingAsync()
        {
            await MyLibrary.DoSomethingAsync().ConfigureAwait(false);
        }

        public class MyLibrary
        {
            public static async Task DoSomethingAsync()
            {
                // Here is some I/O
            }
        }
Run Code Online (Sandbox Code Playgroud)

.net c# asynchronous async-await

9
推荐指数
2
解决办法
485
查看次数

依赖于框架的 .NET8 应用程序:未找到框架

将我们的应用程序从 .NET7 升级到 .NET8 后,在尝试运行已发布的应用程序时出现以下错误:您必须安装或更新 .NET 才能运行此应用程序。

该应用程序作为依赖于框架的 win-x64 发布。我安装了 .NET8 运行时和 SDK。

如果您查看它,.NET location它会尝试在我的应用程序本地路径中查找 .NET,而不是在C:\Program Files\dotnet

有谁知道从 .NET 7 到 8 发生了什么变化或者如何解决这个问题?

F:\myapp>MyApp.exe

You must install or update .NET to run this application.

App: F:\myapp\MyApp.exe
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '8.0.0' (x64)
.NET location: F:\myapp\

No frameworks were found.

Learn about framework resolution:
https://aka.ms/dotnet/app-launch-failed

To install missing framework, download:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=8.0.0&arch=x64&rid=win10-x64
Run Code Online (Sandbox Code Playgroud)

dotnet --列表运行时

Microsoft.WindowsDesktop.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.NETCore.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.AspNetCore.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Run Code Online (Sandbox Code Playgroud)

.net c# .net-core

7
推荐指数
1
解决办法
1211
查看次数

MongoDB 2dsphere索引失败(格式错误的几何?)

我目前正在尝试构建一个2dsphere索引,但创建似乎失败了.

索引创建失败的文档是有效的geojson(根据geojsonlint).

另据我所知,它遵循MongoDB"Polygon"规则.

我很感激任何帮助,因为我无法弄清楚为什么索引创建似乎失败了.

提前致谢!

db.poly.ensureIndex( { loc: "2dsphere" } )
{
        "createdCollectionAutomatically" : false,
        "numIndexesBefore" : 1,
        "ok" : 0,
        "errmsg" : "Can't extract geo keys from object, malformed geometry?: { _
id: 353, loc: { type: \"Polygon\", coordinates: [ [ [ 8.090732000000001, 53.6379
766 ], [ 8.050639500000001, 53.6250853 ], [ 8.036974600000001, 53.6286108 ], [ 7
.994035500000001, 53.6016978 ], [ 8.0120927, 53.59855020000001 ], [ 8.0102720000
00001, 53.5883803 ], [ 8.023379, 53.5867745 ], [ 8.0148004, 53.5832729 ], [ 8.02
6839500000001, …
Run Code Online (Sandbox Code Playgroud)

mongodb geojson mongodb-indexes 2dsphere

6
推荐指数
1
解决办法
4314
查看次数

HttpClient和Unity的UnityWebRequest/WWW API之间的区别

Unity现在支持.NET 4.5,我可以使用命名空间中的HttpClientSystem.Net.Http.这很好,因为我有现有的客户端库,因此易于重用.

有谁知道使用单声道HttpClientUnity自己的网络之间的内部区别

我担心HttpClient不能针对不同的平台进行优化,因此可能会造成麻烦或变慢.

.net c# mono unity-game-engine dotnet-httpclient

5
推荐指数
1
解决办法
1829
查看次数

Asp.Net WebApi与BaseController的继承

我正在努力在WebApi中继续工作,就像我想的那样.也许你可以指出我正确的方向?

我的目标是拥有一个通用的WebApi项目,该项目可以在多个其他WebApi项目中重用.

例如:我有一个可重用的UserController,可以处理多个WebSites的登录.现在我构建一个新的WebSite并简单地将UserController添加到新创建的项目中,这项工作很简单.

但是现在对新WebSite的要求发生了变化,我需要重载UserController方法以反映这些变化,而无需修改通用控制器.

我想要实现的内容可以在下面的代码片段中看到(当然这不会编译,因为C#抱怨不适合重载的方法.)

// This belongs to solution "GenericWebApi"

public class LoginRequest
{
    public string User { get; set; }
}

public class BaseApiController : ApiController
{
     [Route("login")]
    public virtual HttpResponseMessage Login(LoginRequest request) 
    {
        return new HttpResponseMessage();
    }
}


// This belongs to solution "CarWebsite"

public class CarWebsiteLoginRequest : LoginRequest
{
    public string Car { get; set; }
}

[RoutePrefix("api/users")]
public class CarWebsiteApiController : BaseApiController
{
    public override HttpResponseMessage Login(CarWebsiteLoginRequest request)
    {
        // Do some car specific login …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net asp.net-web-api asp.net-web-api2

3
推荐指数
1
解决办法
1万
查看次数

protobuf-net反序列化:“算术运算导致溢出。”

我正在使用protobuf-net序列化/反序列化我的模型。

我的模型相当简单,序列化似乎一直都可以,但是如果我在模型中添加特定类型,反序列化似乎会失败。

我在模型中添加“ int”,“ long”或“ DateTime”后,立即收到“算术运算导致溢出”异常。

模型:

[ProtoContract]
public class MyModel
{
    [ProtoMember(1)]
    public DateTime Time { get; set; }

    [ProtoMember(2)]
    public List<string> SomeList { get; set; }

    [ProtoMember(3)]
    public string Key { get; set; }

    [ProtoMember(4)]
    public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当我删除“时间”属性时,它似乎总是可以工作。

例外:

 at ProtoBuf.ProtoReader.TryReadUInt64VariantWithoutMoving(UInt64& value) in c:\Dev\protobuf-net\protobuf-net\ProtoReader.cs:line 375
   at ProtoBuf.ProtoReader.ReadInt64() in c:\Dev\protobuf-net\protobuf-net\ProtoReader.cs:line 357
   at ProtoBuf.BclHelpers.ReadTimeSpanTicks(ProtoReader source) in c:\Dev\protobuf-net\protobuf-net\BclHelpers.cs:line 191
   at ProtoBuf.Serializers.DateTimeSerializer.Read(Object value, ProtoReader source) in c:\Dev\protobuf-net\protobuf-net\Serializers\DateTimeSerializer.cs:line 35
   at ProtoBuf.Serializers.PropertyDecorator.Read(Object value, ProtoReader source) in …
Run Code Online (Sandbox Code Playgroud)

.net c# serialization protobuf-net deserialization

1
推荐指数
1
解决办法
1633
查看次数