Up to now, I’ve always decorated my .NET classes that I want to use from VB6 with the [AutoDual] attribute. The point was to gain Intellisense on .NET objects in the VB6 environment. However, the other day I googled AutoDual and the first answer is ‘Do Not Use AutoDual’.
I’ve looked for coherent explanation of why I shouldn’t use it, but could not find it.
Can someone here explain it?
I think this sums it up:
http://msdn.microsoft.com/en-us/library/ms182205.aspx
It increases the possibility that changing something in that class with the auto dual attribute will break someone else’s code when the class is changed. If gives the consumer the ability to do something that will quite possibly cause them issues in the future.
http://www.dotnetinterop.com/faq/?q=ClassInterface
I finally found the link that talks about what is going on with AutoDual and how it works:
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/7fa723e4-f884-41dd-9405-1f68afc72597