Tôi có một C# chú thích đó là:Làm thế nào để bạn đặt một Func trong một thuộc tính C# (chú thích)?
[AttributeUsage(AttributeTargets.Method)]
public class OperationInfo : System.Attribute {
public enum VisibilityType {
GLOBAL,
LOCAL,
PRIVATE
}
public VisibilityType Visibility { get; set; }
public string Title { get; set; }
public Func<List<string>, List<string>> Func;
public OperationInfo(VisibilityType visibility, string title, Func<List<string>, List<string>> function) {
Visibility = visibility;
Title = title;
Func = function;
}
}
Như bạn có thể thấy, có là một tài sản mà là một Func và tôi muốn gọi nó là tự động. Về cơ bản, tôi muốn phân tích tất cả các phương thức có chú thích này và sau đó gọi hàm Func được gắn vào chú thích.
Tôi muốn sử dụng nó như thế này (đây là một ví dụ đơn giản của một chức năng tiếng vang, mà được một chuỗi và trả về chuỗi giống nhau):
[OperationInfo(OperationInfo.VisibilityType.GLOBAL, "echo", IDoEcho)]
public static string DoEcho(string a)
{
return a;
}
[OperationInfo(OperationInfo.VisibilityType.PRIVATE, null, null)]
public static List<string> IDoEcho(List<string> param) {
return new List<string>() { DoEcho(param[0]) };
}
tôi đã không có lỗi trong tôi Lớp chú thích nhưng khi nói đến việc tạo lại toàn bộ giải pháp, mỗi khi tôi khai báo một phương thức với chú thích, tôi có một lỗi cho tôi biết rằng tôi phải sử dụng các chữ trong một chú thích.
Tôi hiểu rằng có những hạn chế, nhưng có cách nào để tôi có thể tránh được sự cố này không? Tôi biết tôi có thể sử dụng một chuỗi thay vì một Func, và tìm động cho chức năng có tên giống như chuỗi, nhưng tôi không muốn làm như vậy.
Cảm ơn bạn đã trợ giúp :)
Nó có thể trông không đẹp, nhưng bạn thường sẽ tìm các chuỗi làm đối số cho thuộc tính vì các giá trị phải được biết tại thời gian biên dịch. – danludwig