我不确定如何适当地扩展课程

时间:2013-05-24 16:55:55

标签: c# asp.net

我在asp.net中使用了一些预先构建的代码。它为我提供了MembershipUser类,还有其他几个使用MembershipUser的类。

我想在不更改任何其他内容的情况下向MembershipUser添加新属性。我仍然希望所有预先制作的功能都可以使用它。

如何在不创建其他函数不知道的单独类的情况下扩展MembershipUser以包含新属性?

2 个答案:

答案 0 :(得分:2)

在C#中,您只有三个扩展类的选项:

  1. Inheretance
  2. DecorationMSDN Link
  3. Extension Methods
  4. 可悲的是,他们都不会做你想要达到的目标。

答案 1 :(得分:1)

如果你可以从班级继承,那就去做吧。例如,如果您的媒体资源是string

public class ExtendedMembershipUser : MembershipUser
{
    public string MyNewProperty { get; set; }
}

如果您无法继承(无法添加属性),请添加扩展方法:

public static class MembershipUserExtensions
{
    public static string MyNewMethod(this MembershipUser user)
    {
        return "answer";
    }
}