2011-07-12 14 views
6

Tôi hiện đang làm việc trên thư viện được tiếp xúc với COM để sử dụng trong dự án cũ đang được nâng cấp. Tôi đang tạo ra các giao diện được tiếp xúc, và chúng có các thuộc tính trên chúng với các kiểu dài, int, vv. Sử dụng DescriptionAttribute, tôi có thể nhận được các trợ giúp được tạo ra trong .tlb cho các giao diện, các lớp và các phương thức, nhưng vì một lý do nào đó nó dường như không muốn làm việc cho các thuộc tính. Có anyway để có được một chuỗi giúp tạo ra trong đầu ra TLB cho tài sản?Nhận thuộc tính chuỗi trợ giúp được áp dụng cho các thuộc tính C# được hiển thị thông qua giao diện COM

Trả lời

8

Bạn phải đặt thuộc tính trên trình lấy và đặt riêng lẻ. Như thế này:

using System; 
using System.ComponentModel; 
using System.Runtime.InteropServices; 

namespace ClassLibrary1 { 
    [ComVisible(true), InterfaceType(ComInterfaceType.InterfaceIsDual)] 
    public interface IFoo { 
     int property { 
      [Description("prop")] 
      get; 
      [Description("prop")] 
      set; 
     } 
    } 
} 

Lặp lại mô tả là vụng về, nhưng cũng được yêu cầu trong IDL.

+1

Đúng, điều đó đã xảy ra. Có cách nào để làm điều tương tự với các thông số phương pháp? Tôi cũng không thể làm việc đó. Đối với chính các phương thức, nó tốt, nhưng không phải là các tham số hoặc trả về giá trị. –

+1

Không, không được hỗ trợ bởi thư viện kiểu. –

+0

Tôi biết đây là tiếng ồn, nhưng tôi * cần * cảm ơn bạn @HansPassant. Mỗi khi tôi có một câu hỏi về COM, có bạn đang có một câu trả lời. – RubberDuck