我正在开发一个项目,我需要动态构建.cs文件的实例。
我使用接口来构建数据,就像这样(它们确实有所不同)
public interface IMetaClass
{
string ParentName { get; set; }
string Namespace { get; set; }
string ClassName { get; set; }
string FriendlyName { get; set; }
string Description { get; set; }
}
我也有从这些接口继承的类
public class XavierMetaClass : IMetaClass
{
public string ParentName { get; set; }
// ...
}
构建和填充的示例
var cell = new XavierMetaClass
{
ParentName = mc.Parent.Name,
Namespace = mc.Namespace,
ClassName = mc.Name,
FriendlyName = mc.FriendlyName,
Description = mc.Description + "test"
};
我想做什么是这样做并构建一个新的.cs文件,其中的数据存储在上面的变量中,结果看起来像这样。
public class CellPhone : IMetaClass
{
public string ParentName { get { return "CatalogEntry"; } }
public string Namespace { get { return "Mediachase.Commerce.Catalog.User"; } }
public string ClassName { get { return "CellPhone"; } }
public string FriendlyName { get { return "Cell sPhone"; } }
public string Description { get { return "Contains meta data about phone test"; } }
private readonly IMetaClass _metaClass;
public CellPhone()
{
// Noop
}
public CellPhone(IMetaClass metaClass)
{
_metaClass = metaClass;
}
}
是否有任何已知的方法框架可以帮助我实现这一目标?
由于
答案 0 :(得分:1)
简而言之,您有几个选择。
我已经完成了所有三项工作,我建议使用T4模板,这里有一个关于如何使用它的详尽示例。
http://www.codeproject.com/Articles/269362/Using-T4-Templates-to-generate-custom-strongly-typ
但你需要愿意深入挖掘并学习它,因为有很多东西需要掌握。
答案 1 :(得分:-1)
您考虑使用CodeDom吗?