我试图将对象树序列化为json字符串。对象树很复杂,并且通常序列化没有问题,除了一组属性是来自不同.DLL的对象。无论如何我还可以序列化这些吗?
这是序列化的代码:
var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All };
var json = JsonConvert.SerializeObject(exe.Value, settings);
File.WriteAllText(Path.Combine(folderCache, exe.Value.AccountId + ".txt"), json);
以下是未进行序列化的类属性的类型:
[DataContract(Namespace = Constants.ServiceManagementNS)]
public class Deployment : IExtensibleDataObject
exe.Value是一个基于EntityFramework的模型对象,其定义类似于此(它的结构很深)
[DataContract(IsReference = true)]
[KnownType(typeof(Account))]
public partial class AccountUser: IObjectWithChangeTracker, INotifyPropertyChanged
在树的深处,有一个名为AzureDeployment的属性没有被序列化:
public Deployment AzureDeployment { get; set; }
有什么建议吗?
答案 0 :(得分:0)
原来我需要用[DataMember]
标记非序列化实体