2010-10-08 96 views
5

有没有办法在方法上有扩展方法?这样做的例子是将某个用户对象作为参数的方法,如果该用户可以在该方法的最开始处使用该方法,则需要执行安全检查。该方法是否有扩展方法,如“检查该用户是否可以使用我”并返回bool。方法的扩展方法C#

谢谢。

回答

0

我不知道如果我明白你的问题很好。然而,这个怎么样:

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` 
    … 
} 
0

Extension methods在C#中没有的方法扩展(不知道我理解这意味着什么),但扩展对象/类的方法。

如果您想要向代码中注入您所描述的支票种类,您可以查看PostSharpAOP

0

你可以用madgnome的答案,这是基于方面编程(很高兴看到有人使用.net),或者你可以使用属性和粘贴一些代码在每个应该被守护的方法。