2010-10-25 32 views
31

Tôi đã nhận được cảnh báo từ chủ đề về một trong các lớp học của mình. Trên thực tế lớp học rất đơn giản, chỉ là một người thừa kế của loại cơ sở chung của tôi. Ngoài ra tôi có một số người thừa kế khác từ lớp chung đó trên giải pháp, và không có cảnh báo như vậy.Loại cơ sở không tuân thủ CLS, lý do cảnh báo này là gì?

Lý do có thể là gì? Trình biên dịch không đưa ra bất kỳ manh mối nào về lý do loại cơ sở không tuân thủ CLS

+0

Kiểm tra xem không có phương pháp hoặc thuộc tính nào hiển thị bên ngoài lớp có cùng chính tả với trường hợp duy nhất để phân tách chúng, ví dụ: Kết nối và kết nối. VB.NET không phân biệt giữa trường hợp và các thuộc tính sau đó sẽ không rõ ràng. –

Trả lời

53

Bạn có thể có [assembly:CLSCompliant(true)] ở đâu đó trong dự án cụ thể đó. Điều này kích hoạt trình biên dịch để kiểm tra tất cả các loại được CLS tuân thủ. Bạn có thể ghi đè điều này cho một loại hoặc phương pháp hoặc một cái gì đó với [CLSCompliant(false)].

+4

Trên thực tế nó bật ra, tôi không có thuộc tính đó trong một hội đồng khác. Cảm ơn! – DarkDeny

+0

Bạn được chào đón. –

3

Tôi đoán bạn có loại có nguồn gốc được đánh dấu là CLSCompliant nhưng cơ sở thì không.

Writing CLS Compliant Code Ví dụ kinh điển là sử dụng UInt32 không phải là một phần của đặc tả ngôn ngữ chung (CLS) - do đó bạn cần sử dụng Int64 để CLS tuân thủ hoặc loại bỏ thuộc tính (khai báo chính mình không tuân thủ).

Cần thêm mã để xác định dòng mã vi phạm. Thông tin thêm về số the error bạn đang nhận được.

Các vấn đề liên quan