3

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

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

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

4

2 回答 2

2

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

  1. 继承
  2. 装饰MSDN 链接
  3. 扩展方法

可悲的是,他们都不会做你想要达到的目标。

于 2013-05-24T16:59:20.030 回答
1

如果您可以从该类继承,请执行此操作。例如,如果您的财产是string

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

或者如果您不能继承(您不能添加属性),请添加扩展方法:

public static class MembershipUserExtensions
{
    public static string MyNewMethod(this MembershipUser user)
    {
        return "answer";
    }
}
于 2013-05-24T17:04:45.040 回答