我有一個C#的註釋是:如何在C#屬性(註釋)中放置Func?
[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;
}
}
正如你所看到的,有這是一個Func鍵的屬性,我想動態調用它。基本上,我想分析所有具有此註釋的方法,然後將綁定到註釋的Func調用。
我想使用這樣的(這是回波函數,它得到一個字符串的一個簡單的例子,並返回相同的字符串):
[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]) };
}
我有沒有在我的錯誤註釋類,但是當它重新生成整個解決方案時,每次我用註釋聲明一個方法時,我得到一個錯誤,告訴我必須在註釋中使用文字。
我明白有限制,但有什麼辦法可以避免這個問題嗎?我知道我可以使用字符串而不是Func,並且動態查找名稱與字符串相同的函數,但我不想這樣做。
感謝您的幫助:)
它看起來可能不太漂亮,但您經常會發現字符串作爲參數的參數,因爲在編譯時必須知道這些值。 – danludwig