1

我有一个代码模板,它在项目文件夹中构建文件,并使用部分类中定义的属性来确定仍需要实现哪些属性。举个例子:

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 拒绝只在非生成的部分中实现一半接口的概念班级。有没有办法告诉提供者忽略正在实现的接口?

编辑:我对此进行了更多考虑,并想出了一种解决方法,即首先将源代码实际读入字符串,删除接口引用,然后将代码字符串扔到CompileAssemblyFromSource而不是CompileAssemblyFromFile,但这感觉超级笨拙和很可能会引入错误。想法?

4

1 回答 1

0

我认为您需要修改源以删除接口实现声明。

于 2012-01-13T14:11:56.577 回答