Выставлять разные имена типов (псевдонимы) из сборки
Этот вопрос связан спредыдущий мой вопрос без ответа, так как я все еще решаю ту же проблему; это о другом подходе, хотя.
В настоящее время я использую сторонний веб-сервис SOAP в проекте C # .NET. К сожалению, сгенерированные клиентские прокси-классы и члены классов имеют имена, которые не соответствуют моим текущим соглашениям.
До тех пор, пока не будет указано иное, я могу предположить, чтоSvcUtil не поддерживает алиасинг (хотя, конечно, кажется, что это будет легче всего сделать на этом уровне)
Сейчас я рассматриваю возможность включения потребления веб-службы в собственный проект, то есть сборки, и просто ссылаюсь на него из других проектов. Я рассматриваю это с учетом того, что можно добавить некоторые (предположительно, на уровне сборки) объявления для предоставления открытых типов с именами, отличными от определенных в сборке.
Мой вопросМожно ли выставить имена других типов / элементов, отличные от тех, которые определены в сборке, по существу, их псевдонимы?
Например, учитывая магический атрибут сборки:
[assembly: AssemblyTypeAlias(
Type = typeof(Foo.Bar.qux),
Name = "Qux"
)]
Таким образом, проекты, ссылающиеся на эту сборку, будут иметь доступFoo.Bar.qux
какFoo.Bar.Qux
.
Конечно, подобный атрибут уровня класса был бы также хорош, учитывая, что сгенерированные проксиpartial
:
namespace Foo.Bar
{
[Alias("Qux")]
public partial class qux
{
}
}
Дает тот же эффект.
В то время как я только покрыл имена типов моими теоретическими примерами, решение, которое позволяет создавать псевдонимы имен членов, было бызахватывающий.
редактироватьЯ сказал «псевдоним», где более применимый термин будет «переименовать», чтобы скрыть оригинальное имя; желательно последний, но первый будет работать.