Tôi có một assembly .NET mà tôi đang trưng bày cho COM. Hội đồng có hai giao diện công cộng và một lớp công cộng. Khi tôi xây dựng hội đồng, tôi nhận được cảnh báo này:COM đăng ký Interop
(assemblyName.dll) không chứa bất kỳ loại nào có thể được đăng ký cho COM Interop.
Thông tin lắp ráp của tôi bao gồm dòng sau.
[assembly: ComVisible(true)]
Hầu hết mọi người gặp sự cố này trên web, mà tôi đã tìm thấy, đã khắc phục sự cố đó bằng dòng trên trong thông tin lắp ráp của họ. Điều này đã không giúp ích cho tôi.
Tôi cũng đã thử thêm [ComVisible(true)]
vào định nghĩa lớp và giao diện và cũng không giúp ích gì.
Việc quên thêm một hàm tạo mặc định xảy ra với tôi đôi khi để +1 đề cập đến nó. –
Việc thêm một hàm tạo mặc định công khai thực hiện thủ thuật, lớp được đề cập chỉ được xây dựng từ mã .net. Đây là lý do không có hàm tạo mặc định công khai nào được cung cấp. Tôi cho rằng cảnh báo này cũng sẽ xuất hiện cho một assembly chỉ chứa các giao diện. – trampster
Có, bạn sẽ nhận được cảnh báo tương tự cho một hội đồng chỉ với các giao diện. Tôi đoán nó tương tự như cách một VB6 ActiveX DLL phải chứa ít nhất một lớp học có thể tạo công khai. Nhưng có vẻ như hạn chế không cần thiết trong thế giới .NET, vì bạn có thể có một lớp được xây dựng bởi mã được quản lý và được chuyển đến một thành phần COM, ví dụ: làm đối số phương thức. – Joe