2011-09-21 60 views

回答

2

当然可以!如果您不熟悉撰写附加信息,有关该主题的指南有VB.NETC#

您将需要扩展System.Security.Principal.IIdentity接口。作为一个例子:

宣言:

Imports System.Runtime.CompilerServices 

Module Extensions 

    <Extension()> 
    Function GetMyCustomProperty(anIdentity As System.Security.Principal.IIdentity, myParameter As Integer) As Object 

     Return New Object() 

    End Function 

End Module 

用法:

User.Identity.GetMyCustomProperty(4) 

NOTES:

  • C#代码是一个发ir交易不同,因此值得一看 指南,了解扩展如何实现。通过VB.NET => C#转换器运行这个 代码是不够的。

  • 扩展可能只是方法。您不可以编写自定义属性。如果你想要类似财产的行为,这可能意味着实施getter/setter方法。

编辑:

看到您的意见后,我认为你这样做是为了提供一种粗功能类似于用户配置文件。如果您需要此功能,请考虑使用配置文件提供程序与您当前使用的任何成员资格一致。

+0

如果扩展名不允许自定义属性,它们如何存储与自己相关的自定义状态? – blueberryfields

+0

他们没有。扩展的本质功能更像静态方法,这意味着您需要访问它们扩展的对象的状态信息,将状态数据移动到后台存储(如数据库),或者通过' HttpContext.Current.Session'。如果您正在寻求实施用户个人资料,则最好使用个人资料提供者。 – lsuarez

相关问题