Question

I have a code template which builds files in a project's folder, and uses the properties defined in the partial classes to determine which properties still need to be implemented. As an example:

public partial class Thingy : IThingy
{
    public Foo Bar { get; set; }
}

public interface IThingy
{
    Foo Bar { get; set; }
    Baz Biz { get; set; }
}

and the template is supposed to generate:

public partial class Thingy
{
    Baz Biz { get; set; }
}

I can guarantee that the template will generate the remaining info to satisfy the expectations of the interface and thus would even be able to generate the class, except the CSharpCodeProvider balks at the notion of only getting half of the interface implemented in the non-generated partial class. Is there a way to tell the provider to ignore that an interface is being implemented at all?

EDIT: I've given this a little more thought, and figured a workaround in the form of actually reading the source first into a string, removing the interface references, and throwing the string of code to CompileAssemblyFromSource instead of CompileAssemblyFromFile, but that feels super kludgy and will more than likely introduce bugs. Thoughts?

Was it helpful?

Solution

You need to modify the source to remove interface implementation declaration, I think.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top