相关疑难解决方法(0)

我怎么知道HttpClient何时超时?

据我所知,没有办法知道它特别是发生了超时.我不是在寻找合适的地方,还是我错过了更大的东西?

string baseAddress = "http://localhost:8080/";
var client = new HttpClient() 
{ 
    BaseAddress = new Uri(baseAddress), 
    Timeout = TimeSpan.FromMilliseconds(1) 
};
try
{
    var s = client.GetAsync("").Result;
}
catch(Exception e)
{
    Console.WriteLine(e.Message);
    Console.WriteLine(e.InnerException.Message);
}
Run Code Online (Sandbox Code Playgroud)

返回:

发生了一个或多个错误.

任务被取消了.

c# timeout dotnet-httpclient

123
推荐指数
6
解决办法
11万
查看次数

为什么大对象堆和我们为什么关心?

我读过有关Generations和Large object heap的内容.但我仍然不明白拥有大型对象堆的意义(或好处)是什么?

如果CLR只是依赖于第2代(考虑到Gen0和Gen1的阈值很小来处理大型对象)来存储大型对象,那么可能出现什么问题(在性能或内存方面)?

.net clr garbage-collection large-object-heap

96
推荐指数
4
解决办法
4万
查看次数

数组可以容纳的最大大小是多少?

在C#2008中,数组可以容纳的最大大小是多少?

c# arrays

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

为什么byte []的最大大小为2 GB - 57 B?

在我的64位机器上,这个C#代码有效:

new byte[2L * 1024 * 1024 * 1024 - 57]
Run Code Online (Sandbox Code Playgroud)

但是这个抛出一个OutOfMemoryException:

new byte[2L * 1024 * 1024 * 1024 - 56]
Run Code Online (Sandbox Code Playgroud)

为什么?

我知道托管对象的最大大小是2 GB,我正在创建的数组对象包含的内容超过了我想要的字节数.也就是说,同步块编号有4个字节(或8?),MethodTable参考有8个字节,数组大小有4个字节.这是24个字节,包括填充,所以为什么我不能分配一个2G-24字节的数组?最大尺寸真的 2 GB吗?如果是这样的话,2 GB的剩余部分用于什么?

注意:我实际上不需要分配一个包含200万字节的数组.即使我这样做,56个字节的开销可以忽略不计.我可以使用自定义轻松解决限制BigArray<T>.

.net arrays limits

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

C#中的增量JSON解析

我试图逐步解析JSON,即基于条件.

下面是我的json消息,我目前正在使用JavaScriptSerializer来反序列化消息.

string json = @"{"id":2,
"method":"add",
"params":
   {"object":
       {"name":"test"
        "id":"1"},
        "position":"1"}
  }";

JavaScriptSerializer js = new JavaScriptSerializer();
Message m = js.Deserialize<Message>(json);
Run Code Online (Sandbox Code Playgroud)

消息类如下所示:

 public class Message
 {
        public string id { get; set; }
        public string method { get; set; }
        public Params @params { get; set; }
        public string position { get; set; }
 }
public class Params
{
        public string name { get; set; }
        public string id{ get; set; 
}
Run Code Online (Sandbox Code Playgroud)

上面的代码解析消息没有问题.但它会立即解析整个JSON.我希望它仅在"method"参数的值为"add"时才进行解析.如果它不是"添加",那么我不希望它继续解析其余的消息.有没有办法根据C#中的条件进行增量解析?(环境:VS 2008与.Net 3.5)

c# parsing json

11
推荐指数
3
解决办法
9422
查看次数

尝试接受具有大文件的模型时出现 .net API 错误

我有一个 API 方法,当一个大文件传递给它时,它会接收一个空模型参数。
我创建了一个测试客户端来测试这个端点。测试客户端和 API 都具有相同的模型,并且都使用 .NET 4.5:

public class FilingPostModel
    {
        public string Id { get; set; }
        public string TypeId { get; set; }
        public string FirstName { get; set; }
        public string MiddleName { get; set; }
        public string LastName { get; set; }
        public string Suffix { get; set; }
        public string Line1 { get; set; }
        public string Line2 { get; set; }
        public string City { get; set; }
        public string State { get; …
Run Code Online (Sandbox Code Playgroud)

.net c# json.net c#-4.0 asp.net-web-api

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