相关疑难解决方法(0)

使JSON.NET和Serializable属性协同工作

我正在使用JSON.NET,并且在WEBAPI对象反序列化过程中遇到了一些麻烦.经过一些研究后,我发现该课程标有[Serializable].当我删除它时,反序列化就好了.

有关这方面的更多详细信息,请访问:

为什么Web API不会反序列化,但JSON.Net会?

现在谈到我使用binaryformatter来创建从这个对象类计算的哈希值的问题.但Binaryformatter要求必须将类标记为[Serializable].

您能否推荐我任何方法让两件事同时发挥作用?

asp.net-mvc serialization json json.net asp.net-web-api

17
推荐指数
2
解决办法
6154
查看次数

无法序列化内容类型的响应正文

我正在构建一个使用Controllers和ApiControllers的MVC4应用程序.我修改了默认Web API路由以包含操作名称.当我尝试获取基准列表时,我收到此错误消息:

'ObjectContent`1'类型无法序列化内容类型'application/json的响应主体; 字符集= UTF-8'

InnerException就是这个(我在这种情况下返回JSON,与XML相同):

"InnerException": {
"Message": "An error has occurred.",
"ExceptionMessage": "Error getting value from 'IdentityEqualityComparer' on 'NHibernate.Proxy.DefaultLazyInitializer'.",
"ExceptionType": "Newtonsoft.Json.JsonSerializationException",
"StackTrace": " at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeISerializable(JsonWriter writer, ISerializable value, JsonISerializableContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty) …
Run Code Online (Sandbox Code Playgroud)

rest fluent-nhibernate asp.net-mvc-4 asp.net-web-api

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

在WebAPI中使用Model上的Serializable属性

我有以下场景:我正在使用WebAPI并根据模型将JSON结果返回给使用者.我现在还需要将模型序列化为base64,以便能够将它们保存在缓存中和/或将它们用于审计目的.问题是当我将[Serializable]属性添加到模型以便将模型转换为Base64时,JSON输出会发生如下变化:

该模型:

[Serializable]
public class ResortModel
{
    public int ResortKey { get; set; }

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

如果没有该[Serializable]属性,则JSON输出为:

{
    "ResortKey": 1,
    "ResortName": "Resort A"
}
Run Code Online (Sandbox Code Playgroud)

使用[Serializable]JSON输出的属性是:

{
    "<ResortKey>k__BackingField": 1,
    "<ResortName>k__BackingField": "Resort A"
}
Run Code Online (Sandbox Code Playgroud)

如何在[Serializable]不更改JSON输出的情况下使用该属性?

c# json serializable asp.net-web-api

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