1
我有一個類像下面被添加到項目/溶液作爲參考JsonSerializer不序列化時派生類屬性
public class FileContents
{
public List<RecordBase> Records { get; set; }
}
public class RecordBase
{
public int LineNumber { get; set; }
}
有未添加到參考但dynamicaly加載和這些類是一些其他的類從RecordBase類的下面導出的是它是如何裝入
var fileContents = new FileContents();
var dll = Assembly.LoadFile(derivedClassesAssemblyLocation);
Type type = dll.GetExportedTypes().Where(a =>
a.Name.Equals(className)).FirstOrDefault();
if (type != null && type.Name == className)
{
dynamic instance = Activator.CreateInstance(type);
//All properties are populated to the instance
//.....
//.....
fileContents.Records.Add(instance)
}
的下面的代碼段被前面提到的,其是從RecordBase
導出的其他類public class RecordStyleA : RecordBase
{
public string PropertyA { get; set; }
public string PropertyB { get; set; }
public string PropertyC { get; set; }
}
加載和序列
var result = new FileContents();
//Logic to load ....
var serializer = new ServiceStack.Text.JsonStringSerializer();
var json = serializer.SerializeToString(result);
在這裏,當我嘗試serilaize的FileContents對象則跳過在派生類可用的屬性(例如,從RecordStyleA)
這裏衍生(RecordStyleA)類是有條件地裝載並且其屬性也可以根據情況而變化。駕駛的課程在飛行中創建。
請幫我解決這個問題
我做了基類現在抽象它序列化。非常感謝你@mythz – Shiljo