相关疑难解决方法(0)

Json.NET是否缓存类型的序列化信息?

在.NET世界中,当谈到对象序列化时,它通常用于在运行时检查对象的字段和属性.对此作业使用反射通常很慢,并且在处理大量对象时是不合需要的.另一种方法是使用IL发射或构建表达树,这些表现树相对于反射提供显着的性能增益.而后者是处理序列化时最现代化的库.但是,在运行时构建和发送IL需要花费时间,并且只有在将此信息缓存并重用于相同类型的对象时才会回收投资.

当使用Json.NET时,我不清楚使用上述哪种方法,如果确实使用了后者,是否使用了缓存.

例如,当我这样做时:

JsonConvert.SerializeObject(new Foo { value = 1 });
Run Code Online (Sandbox Code Playgroud)

Json.NET是否构建了Foo的成员访问信息并缓存以便以后重用它?

c# serialization json expression-trees json.net

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

使用WebAPI时停止XSS

我有一个接受的控制器

public class MyModel
{
   [MaxLength(400)]
   public string Message { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个WebApi Post Action

public HttpResponseMessage Post(MyModel viewModel)
{
            if (!ModelState.IsValid)
                return new HttpResponseMessage(HttpStatusCode.BadRequest);                 
            ...
}
Run Code Online (Sandbox Code Playgroud)

并采取行动.

由于内容是通过javascript写出的,而不是直接在视图中写出来的,确切的内容都被写出来了,也没有关于危险内容的asp.net警告.

我想要防范XSS.目前我在做

HttpUtility.HtmlEncode(Regex.Replace(p.Message, @"<[^>]*>", String.Empty))
Run Code Online (Sandbox Code Playgroud)

在Get动作中.(从使用C#正则表达式删除HTML标记中获取一些代码)

我应该使用Asp.Net内置的保护措施吗?我可以用我的模型装饰任何属性吗?

我注意到了http://stephenwalther.com/archive/2012/06/25/announcing-the-june-2012-release-of-the-ajax-control-toolkit.aspx,但点击了http:// wpl. codeplex.com/似乎非常糟糕.

c# asp.net asp.net-mvc asp.net-4.0

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

有选择地使用默认的JSON转换器

我在我的Web API项目中使用以下内容Startup.cs将JSON序列化枚举为字符串:

// Configure JSON Serialization
var jsonSerializationSettings = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings;
jsonSerializationSettings.Formatting = Newtonsoft.Json.Formatting.None;
jsonSerializationSettings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter());
Run Code Online (Sandbox Code Playgroud)

这是为了避免装饰每个Enum属性 [JsonConverter(typeof(StringEnumConverter))]

现在,如何选择退出某些Enum属性的全局序列化设置并使用转换为整数的默认序列化程序?

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

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

C# Newtonsoft.Json 自定义反序列化器

我正在使用一个 API,它以与我习惯处理不同的方式返回结果,而且看起来不标准。

例如,以下是客户数据的片段:

{
    "CustomerID": {
        "value": "EXAMPLE"
    },
    "CustomerCurrencyID": {
        "value": "USD"
    }
}
Run Code Online (Sandbox Code Playgroud)

这个“value”属性似乎非常不必要,所以我想看看我是否可以绕过所有这些并将该 JSON 反序列化为一个对象,如下所示:

class Customer {
    public string CustomerID { get; set; }
    public string CustomerCurrencyID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我目前正在编写一个自定义 JsonConverter 来处理这个问题,所以如果我走的是正确的道路,请告诉我,但这里的任何提示/技巧将不胜感激!

c# json json.net

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