Можем ли мы использовать TypeIdentifierAttribute в .NET без COM? - PullRequest
2 голосов
/ 20 июля 2010

Мне любопытно, можно ли сделать 2 интерфейса в .NET (либо в одной сборке, либо в отдельных сборках), которые можно рассматривать как эквивалентные, используя новый атрибут TypeIdentifierAttribute.Я не нашел способа.

Я видел в интернете некоторые вещи, которые предполагают, что это в конечном итоге станет возможным, но похоже, что текущая реализация предназначена только для COM-взаимодействий.Я понимаю, что непосредственные намерения для этого заключались в встраивании COM-операций.Я не имею дело с COM-взаимодействиями.

Кроме того, мне не интересно обсуждать, почему я хотел бы сделать это, я не хочу приводить этот вопрос к другим типам решений.Давайте просто скажем, что я экспериментирую и хочу посмотреть, можно ли что-нибудь сделать с TypeIdentifierAttribute.

1 Ответ

3 голосов
/ 20 июля 2010

В соответствии с документами и неподтверждением можно сделать эквивалентность типов работающей со стандартными интерфейсами, не связанными с COM.

Из документации кажется, что вам не нужен атрибут TypeIdentifierAttribute, если ваши интерфейсы находятся в разных сборках. Чтобы два интерфейса рассматривались как эквивалентные, вам просто необходимо:

  1. Убедитесь, что они оба имеют одинаковые имена и живут в одном пространстве имен.
  2. Примените атрибут GuidAttribute к ним обоим, назначив им одинаковый Guid.
...