Компиляция частичных классов с помощью CSharpCodeProvider - PullRequest
1 голос
/ 12 января 2012

У меня есть шаблон кода, который создает файлы в папке проекта и использует свойства, определенные в частичных классах, чтобы определить, какие свойства еще необходимо реализовать. Как пример:

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, но это кажется супер грязным и, скорее всего, приведет к ошибкам. Мысли? * * 1013

1 Ответ

0 голосов
/ 13 января 2012

Вам нужно изменить исходный код, чтобы удалить объявление реализации интерфейса, я думаю.

...