我通过装饰XmlSerializer来消磨时间,我遇到了路上的撞击声。
当我指定要反序列化的文件路径时,我目前正在分配一个类似于以下内容的字符串:
XmlHandler handler = new XmlHandler();
Car newCar = handler.GetSingle<Car>("Vehicles\\Cars\\Car1.xml");
我认为如果我可以通过对象分配此路径(可能在运行时动态创建和填充),那将是一个很好的:
public class FolderFileModel
{
public string FolderFileName { get; set;}
public string FullPath { get; set;}
public string FileType { get; set;}
...
public override string ToString()
{
return FullPath;
}
}
public static class Vehicles : FolderFileModel
{
public static Cars Cars { get; set; }
public static Trucks Trucks { get; set; }
public static Motorcycle Motorcycle { get; set; }
}
public static class Cars : FolderFileModel
{
public static Car Car1 { get; set;}
public static Car Car2 { get; set;}
}
public static class Car : FolderFileModel
{
}
然后像这样调用它:
Car newCar = handler.GetSingle<Car>(Vehicles.Cars.Car1);
使用正确的值分配对象运行时不是问题,问题是我显然需要在编译时分配数据。 (硬编码不是一个选项,但我对其他如何实现这一点的想法持开放态度)
到目前为止我所考虑的事项:
之前我从未使用过T4模板,所以我想我是否可以解决这个问题的简单解决方案(除了对目录层次结构进行硬编码) 因为它似乎相当多的工作,在我的项目中可能不值得麻烦。