Cho đến bây giờ, tôi đã luôn trang trí các lớp .NET của mình mà tôi muốn sử dụng từ VB6 với thuộc tính [AutoDual]
. Vấn đề là để có được Intellisense trên các đối tượng .NET trong môi trường VB6. Tuy nhiên, ngày hôm kia tôi googled AutoDual và câu trả lời đầu tiên là 'Không sử dụng AutoDual'.Tại sao tôi không nên sử dụng Tự động?
Tôi đã tìm kiếm giải thích mạch lạc về lý do tại sao tôi không nên sử dụng nó, nhưng không thể tìm thấy nó.
Ai đó ở đây có thể giải thích nó không?
Phần tôi không rõ ràng là: 'Bất kỳ thay đổi nào trong phiên bản tương lai đối với bố cục của loại hoặc bất kỳ loại cơ sở nào sẽ phá vỡ các máy khách COM '. Có nghĩa là nếu tôi thay đổi một thuộc tính từ int thành gấp đôi, client sẽ phá vỡ? Hay nó có nghĩa là nếu tôi đơn giản biên dịch lại phần .NET, máy khách VB6 sẽ không còn có thể sử dụng nó nữa? – AngryHacker
Miễn là bạn không thay đổi giao diện, bạn nên ổn. http://www.dotnetinterop.com/faq/?q=ClassInterface – kemiller2002
@Kevin, vì vậy chỉ cần biên dịch lại thư viện .NET của tôi sẽ không phá vỡ người tiêu dùng? Và 'thay đổi thứ tự các phương thức' thực sự có ý nghĩa gì? Có nghĩa là thay đổi thứ tự của các phương thức trong mã? Tôi vẫn không hiểu rõ tại sao chúng ta nên tránh AutoDual. Tôi nghĩ rằng điều này được hiểu rằng nếu bạn thay đổi giao diện, hơn người tiêu dùng sẽ không hoạt động. Nó luôn luôn được như vậy trong thế giới VB6. – AngryHacker