Есть ли способ получить xsd.exe для генерации классов с "внутренней" областью действия? - PullRequest
8 голосов
/ 17 сентября 2009

У меня есть DLL, которая содержит некоторые сгенерированные XSD классы. К сожалению, XSD.exe делает эти классы общедоступными, что приводит к «Отсутствует комментарий XML для публично видимого типа или члена XYZ» предупреждений. Кроме того, я бы предпочел не выставлять эти классы из моей DLL. Есть ли способ, кроме ручного редактирования сгенерированных .cs, сделать эти классы внутренними ?

1 Ответ

5 голосов
/ 17 сентября 2009

Это очень короткий ответ, который можно развернуть до книги.

Нет, xsd.exe не может делать то, что вы хотите.

Однако вы можете использовать методы, описанные в этой статье , чтобы получить доступ к классу XmlCodeExporter , который является частью инфраструктуры, генерирующей код из схем XML. Как только это будет сделано, у вас есть копия CodeDOM для сгенерированного кода в памяти. Вы можете перебрать все классы в пространстве имен и установить для них внутренние.

Возможно, что усилия, необходимые для удаления этого предупреждения, больше, чем вы хотели бы.

Другой способ удалить предупреждение - создать код в сборке, для которой отключены документы XML (в конце концов, кому нужны документы для сгенерированного кода?)

...