Что делает атрибут C# CoClass?
Я нашел код, похожий на следующий, в сторонней библиотеке, которую мы используем.
[CoClass(typeof(BlahClass))]
public interface Blah : IBlah
{
}
Что это делает именно? Документация msdn не освещала предмет достаточно для меня, чтобы следовать.
1 ответ
Решение
Он заявляет, что интерфейс Blah
предназначен для реализации конкретным классом. Это означает, что вы можете удобно сказать new Blah
и среда выполнения будет знать, какой объект создать - что обычно невозможно с интерфейсом.
Если вы посмотрите на сгенерированное объявление для BlahClass, оно, вероятно, будет иметь Guid
связанный с ним, который может быть использован для создания экземпляра COM-объекта.