小编use*_*797的帖子

异步方法如何使用堆栈?

我刚刚开始使用.NET异步编程,每个人都说它对服务器端代码更好,因为如果我使用异步keywork,ASP.NET将不会为每个请求创建线程,并将为所有异步代码重用相同的线程.

因为每个线程都需要堆栈,并且可能有数百个线程,所以它有机会节省大量内存,例如:

regular: 1500 threads x 2mb = 3000 mb
async:   20 threads x 2mb   =   40 mb
Run Code Online (Sandbox Code Playgroud)

但它是否意味着异步代码在没有堆栈的情况下执行?或者它存储在哪里以及.NET如何使用它?

.net c# asp.net async-await

3
推荐指数
2
解决办法
255
查看次数

更好的OLSON/IANA时区名称

我们想在我们的网站上将Windows时区转换为OLSON时区.但是,OLSON时区的问题在于它们使用大陆来命名而不是国家名称,例如:

America/New_York
Asia/Kolkata
...
Run Code Online (Sandbox Code Playgroud)

我不认为我们的任何客户都希望他/她必须输入一个大陆名称才能找到一个正确的时区 - 并且时区列表比Windows中使用的要大得多 - 几乎一千个.例如,即使客户发现他必须输入大陆名称,Asia他也必须在数百个时区搜索所有亚洲国家.从可用性的角度来看,这是非常糟糕的.

是否有任何数据库可以将OLSON/IANA时区名称映射到乡村风格的名称,例如:

America/New_York -> New York, USA
Asia/Kolkata -> Kolkata, India
Run Code Online (Sandbox Code Playgroud)

time timezone nodatime

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

ProtoBuf-NET 的 OnDeserialized 属性

我们使用 JSON.NET 将数据与OnDeserialized属性一起序列化,以便在反序列化后执行自定义代码:

[OnDeserialized]
internal void OnDeserializedMethod(StreamingContext context)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在我们尝试使用protobuf而不是JSON.NET并且该方法没有执行。还有另一种方法可以实现这种行为吗protobuf.net

这是一个不起作用的示例:

class Program
{
    static void Main(string[] args)
    {
        RuntimeTypeModel.Default.Add(typeof (Profile), false).Add(1000, "Id").Add(1001, "Text");

        var test = new Profile {Id = Guid.NewGuid(), Text = "123"};

        using (var memoryStream = new MemoryStream())
        {
            Serializer.Serialize(memoryStream, test);

            memoryStream.Seek(0, SeekOrigin.Begin);

            var deserialized =  Serializer.Deserialize<Profile>(memoryStream);

            Console.WriteLine(deserialized.Text); // should output "changed"
            Console.ReadLine();
        }
    }
}

[ProtoContract]
public class Profile
{
    public Guid Id { get; set; …
Run Code Online (Sandbox Code Playgroud)

protobuf-net

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

Web Api:基本控制器验证

使用ASP.NET Web Api 2时,我总是需要包含相同的代码:

public IHttpActionResult SomeMethod1(Model1 model)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }
    //...
}

public IHttpActionResult SomeMethod2(Model2 model)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }
    //...
}
Run Code Online (Sandbox Code Playgroud)

我想将验证移动到将在每个请求上执行的基本控制器.但是有许多方法可以覆盖,我不知道,我应该使用哪种方法以及如何使用.

public class BaseController : ApiController
{
    public void override SomeMethod(...)
    {
        if (!ModelState.IsValid)
        {
            // ???
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ASP.NET Web Api的基类中是否有任何验证示例?

asp.net asp.net-mvc asp.net-web-api

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

ECMA6Script中[] .forEach.call(...)的替代方案

我在所有应用程序中使用以下代码来枚举DOM元素:

var elements = document.querySelectorAll('div');
[].forEach.call(elements, function(element) {
    div.style.color = 'green';
});
Run Code Online (Sandbox Code Playgroud)

此代码有效,但[].forEach.call(...)在大型应用程序中不易阅读.在不使用自定义函数或原型的情况下,ECMA6Script中是否有更简单的DOM枚举原生方式?

javascript ecmascript-6

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

应该使用哪种C#数据类型来存储日期而没有时间?

有一种数据类型可用于存储没有时间的日期PostgreSQL.在C#中,没有时间存储日期的最佳数据类型是什么?

我们知道,DateTime可以在00:00:00时使用,但这对外部用户来说非常误导,日期也没有时区,但DateTime确实如此.NodaTime不能在我们的项目中使用,因此我们正在寻找原生.NET解决方案.

.net c# postgresql

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