Вопрос

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

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top