[英]extension method for a method C#
有沒有辦法在方法上有擴展方法? 這方面的示例是將一些用戶對象作為參數的方法,如果該用戶可以在方法的最開始使用該方法,則需要進行安全檢查。 該方法可以使用擴展方法,例如“檢查此用戶是否可以使用我”並返回bool。
謝謝。
您無法為使用C#的方法添加擴展方法。
但您可以使用面向方面編程(AOP)來執行您想要的操作,例如使用PostSharp或Spring.NET 。
public class BusinessDivision : BusinessObject { [SecuredOperation("Manager")] public void EnlistEmployee(Employee employee) { // Details omitted. } }
我不太確定你在尋找什么,但這對我來說就像聲明性安全一樣。
請查看: http : //msdn.microsoft.com/en-us/library/kaacwy28.aspx
我不確定我是否理解你的問題。 但是,這個怎么樣:
public static void EnsureUserHasAccess(this object obj)
{
// check permissions, possibly depending on `obj`'s actual type
}
public static void DoSomething(this MyClass obj)
{
// permissions check
obj.EnsureUserHasAccess();
// do something about `obj`
…
}
public static void DoSomethingElse(this MyDifferentClass obj)
{
// permissions check
obj.EnsureUserHasAccess();
// do something about `obj`
…
}
您可以使用madgnome的答案,它基於方面編程(很高興看到有人在.net中使用過)或者您可以使用屬性並在每個應該保護的方法中粘貼一些代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.