Выставлять разные имена типов (псевдонимы) из сборки

Этот вопрос связан спредыдущий мой вопрос без ответа, так как я все еще решаю ту же проблему; это о другом подходе, хотя.

В настоящее время я использую сторонний веб-сервис 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 
    {
    }
}

Дает тот же эффект.

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

редактироватьЯ сказал «псевдоним», где более применимый термин будет «переименовать», чтобы скрыть оригинальное имя; желательно последний, но первый будет работать.

Ответы на вопрос(1)

Ваш ответ на вопрос