相关疑难解决方法(0)

重写System.Object.GetHashCode的最佳算法是什么?

在.NET GetHashCode方法中,很多地方都使用.NET 方法.特别是在快速查找集合中的项目或确定相等性时.是否有关于如何GetHashCode为我的自定义类实现覆盖的标准算法/最佳实践,因此我不会降低性能?

.net algorithm hashcode gethashcode

1389
推荐指数
14
解决办法
19万
查看次数

ASP.NET MVC:使用JsonResult控制属性名的序列化

有没有办法控制JsonResult带属性的JSON输出,类似于你如何使用它们XmlElementAttribute以及它的bretheren来控制XML序列化的输出?

例如,给定以下类:

public class Foo
{
    [SomeJsonSerializationAttribute("bar")]
    public String Bar { get; set; }

    [SomeJsonSerializationAttribute("oygevalt")]
    public String Oygevalt { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想得到以下输出:

{ bar: '', oygevalt: '' }
Run Code Online (Sandbox Code Playgroud)

相反:

{ Bar: '', Oygevalt: '' }
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc serialization json

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

MVC JsonResult camelCase序列化

我试图让我的动作返回一个JsonResult,其所有属性都在camelCase中.

我有一个简单的模型:

public class MyModel
{
    public int SomeInteger { get; set; }

    public string SomeString { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

一个简单的控制器动作:

public JsonResult Index()
    {
        MyModel model = new MyModel();
        model.SomeInteger = 1;
        model.SomeString = "SomeString";

        return Json(model, JsonRequestBehavior.AllowGet);
    }
Run Code Online (Sandbox Code Playgroud)

现在调用此操作方法将返回包含以下数据的JsonResult:

{"SomeInteger":1,"SomeString":"SomeString"}
Run Code Online (Sandbox Code Playgroud)

对于我的用途我需要动作返回camelCase中的数据,不知何故这样:

{"someInteger":1,"someString":"SomeString"}
Run Code Online (Sandbox Code Playgroud)

有没有优雅的方法来做到这一点?

我正在寻找可能的解决方案,并找到MVC3 JSON序列化:如何控制属性名称?他们将DataMember定义设置为模型的每个属性,但我真的不想这样做.

我还找到了一个链接,他们说可以解决这类问题:http://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-序列化#json_camelcasing.它说:

要使用camel大小写来编写JSON属性名,而不更改数据模型,请在序列化程序上设置CamelCasePropertyNamesContractResolver:

var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
Run Code Online (Sandbox Code Playgroud)

此博客上的一个条目http://frankapi.wordpress.com/2012/09/09/going-camelcase-in-asp-net-mvc-web-api/也提到了这个解决方案并声明您可以简单地将其添加到RouteConfig.RegisterRoutes来解决此问题.我尝试过,但我无法使它工作.

你们有什么想法我做错了吗?

asp.net-mvc serialization json camelcasing

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