Компиляция частичных классов с csharpcodeprovider
-
27-10-2019 - |
Вопрос
У меня есть шаблон кода, который строит файлы в папке проекта, и использует свойства, определенные в частичных классах, чтобы определить, какие свойства еще необходимо реализовать. В качестве примера:
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
, но это кажется супер -хлебным и, скорее всего, представит ошибки. Мысли?
Решение
Думаю, вам необходимо изменить источник для удаления объявления реализации интерфейса.