1
我有一个代码模板,它在项目文件夹中构建文件,并使用部分类中定义的属性来确定哪些属性仍需要实现。举个例子:使用CSharpCodeProvider编译部分类
public partial class Thingy : IThingy
{
public Foo Bar { get; set; }
}
public interface IThingy
{
Foo Bar { get; set; }
Baz Biz { get; set; }
}
和模板应该产生:
public partial class Thingy
{
Baz Biz { get; set; }
}
我可以保证模板将产生剩余的信息,以满足该接口的期望,因此将甚至能够生成类,除了CSharpCodeProvider balks在概念上仅获得在非生成的部分类中实现的接口的一半外。有没有办法告诉提供者忽略一个接口正在被实现?
编辑:我给这多一点的想法,并在实际第一读取源到一个字符串,删除该接口引用,并抛出的串码到CompileAssemblyFromSource
,而不是形式想出一个解决办法CompileAssemblyFromFile
,但这感觉超级笨拙,并且很可能会引入错误。思考?
因此,您是否能够编译生成的部分类集? – abatishchev 2012-01-13 14:13:57