我有一个类像下面被添加到项目/溶液作为参考
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)类加载条件和它的属性也可能会有所不同取决于condion。 该掘进类是动态创建。
请帮我解决这个问题