Tôi đã tạo một thuộc tính chấp nhận mảng (params) trong hàm tạo của nó.Thuộc tính tuân thủ CLS và tham số mảng
internal class MyTestAttribute : Attribute
{
public MyTestAttribute (params Options[] options)
{
....
}
}
Option
đây là một enum (với rất nhiều giá trị), do đó, một trang web gọi mẫu sẽ
[MyTest(Option.One, Option.Three)]
internal void SomeMethod(int param1, long param2)
{
....
}
Everything is peachy cho đến nay, và các thiết lập hoạt động, nhưng tôi nhận được "Mảng dưới dạng đối số thuộc tính không phải là cảnh báo CL2 tuân thủ" trên mỗi trang web gọi. Bây giờ, tôi phải thừa nhận rằng tôi không cần phải sử dụng lắp ráp này từ bất cứ nơi nào khác mà C#, cũng không làm tôi cảnh báo-như-lỗi, nhưng hàng trăm cảnh báo đang nhận được gây phiền nhiễu.
Giải pháp rõ ràng là tắt tính tuân thủ CLS, nhưng hiện tại tôi không thể làm điều đó.
Có cách tiếp cận nào khác để tạo thuộc tính vẫn sẽ thực hiện tương tự không, nhưng loại bỏ các cảnh báo?
Arg, đánh bại tôi! Nhưng tại sao CLS phàn nàn về một lớp thuộc tính nội bộ? – leppie
Có, 'Tùy chọn' là một enum và trang web cuộc gọi sẽ sử dụng tối đa ba hoặc bốn tùy chọn, vì vậy đây là một giải pháp tuyệt vời. Tnx, tôi có cảm giác mình đang nhìn cái gì đó rõ ràng :) – SWeko
@leppie, nó không phàn nàn về định nghĩa của thuộc tính (nó là gì nếu nó công khai), nó phàn nàn trên các trang gọi chung. – SWeko