小编Nic*_*ick的帖子

配置JSON.NET以忽略DataContract/DataMember属性

我们在使用Microsoft JSON序列化程序和JSON.NET的MVC3项目中遇到了这种情况.

每个人都知道DateTime在Microsoft的序列化程序中基本上被打破了,所以我们切换到JSON.NET来避免这个问题.这很好用,除了我们尝试序列化的一些类是具有DataContract/DataMember属性的POCO.它们在多个位置引用的程序集中定义.此外,它们还具有一些其他显示属性,这些属性未标记为DataMembers以提高效率.例如,客户

[DataContract]
public class Customer
{
   [DataMember]
   public string FirstName { get; set;}
   [DataMember]
   public string LastName { get; set;}
   public string FullName 
   {
       get
       {  return FirstName + " " + LastName; }
   }

}
Run Code Online (Sandbox Code Playgroud)

当这个客户通过WCF传递时,客户端可以引用该程序集并使用FullName就好了,但是当使用JSON.NET序列化时,它会看到FullName不是a [DataMember]并且不会序列化它.是否可以选择传递给JSON.NET,告诉它忽略类已[DataContract]应用属性的事实?

注意: 在.NET中使用JavaScriptSerializer可以很好地处理FullName属性,但DateTimes会被破坏.我需要JSON.NET忽略这个类具有DataContract/DataMember属性的事实,并且只是执行标准的公共字段序列化,就像它们不在那里一样.

c# json datacontract datamember json.net

35
推荐指数
6
解决办法
2万
查看次数

Windows 8 - 拒绝后请求相机权限

我正在写一个需要使用相机的应用程序.第一次执行此操作时,它会要求用户允许使用相机.

如果他们单击"阻止",无论如何通过应用程序重新请求该权限?或者他们是否必须卸载并重新安装应用程序?

c# microsoft-metro windows-8

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