Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does the C# CoClass attribute do?

Tags:

c#

coclass

I found code something like the following in a 3rd party library we're using.

[CoClass(typeof(BlahClass))] public interface Blah : IBlah { } 

What is this doing exactly? The msdn documentation didn't illuminate the subject sufficiently for me to follow.

like image 886
Robert Gowland Avatar asked Aug 05 '11 18:08

Robert Gowland


1 Answers

It declares that the interface Blah is intended to be implemented by a specific class. It means that you can conveniently say new Blah and the runtime will know what object to create - something that is not normally possible with an interface.

If you look at the generated declaration for BlahClass, it will presumably have a Guid associated with it which can be used to create an instance of a COM object.

like image 175
Daniel Earwicker Avatar answered Oct 02 '22 11:10

Daniel Earwicker