【问题标题】:Adding properties to an existing object retrieved using SubSonic向使用 SubSonic 检索的现有对象添加属性
【发布时间】:2009-09-26 02:43:44
【问题描述】:

我认为这更像是一个多态性问题,但它适用于 SubSonic 表对象...

事情是这样的(我喜欢这个):

TblUser userObj = new TblUser(1);

用 PK=1 的所有好东西填充 userObj 的属性。

现在,我想为现有的用户对象添加更多属性,例如,一个 ArrayList 属性,比如帐号。

我已经看到过这样的问题 - “将属性添加到现有对象......”,但在这种情况下,是否最推荐创建一个用户包装对象,然后有一个 TblUser 属性类型,以及我自己的其他附加属性?

好吧,看来我又想出了一个解决方案,但我仍然对向现有对象添加属性的可能性感到好奇。

【问题讨论】:

    标签: subsonic object properties polymorphism


    【解决方案1】:

    所有生成的 SubSonic 类都是partials,所以你需要做的就是为它们添加额外的属性/方法是在同一个命名空间中创建你自己的具有相同名称的部分类,这两个类将在编译时合并.例如对于您的 TblUser 类:

    public partial class TblUser
    {
      public List<AccountNumber> AccountNumbers
      {
        get 
        {
          // Get and return the AccountNumbers 
        } 
      }
    }
    

    【讨论】:

    • 约翰,谢谢你的回答。但是,我正在使用 TblUser(userID) 填充对象 - 很好......但是我的部分类中存在问题: namespace My.DAL { public partial class TblUser : PayTrail.DAL.TblUserCard { public TblUser() { } public TblUser(long userID) { moreValues = "更多值!!!"; } 私有字符串更多值;公共字符串 MoreValues { 获取 { 返回 moreValues; } //set { moreValues = value; } } } }
    • 见。那里没有代码。这是 TblUser() 对象在传递用户 ID 后使用用户相关数据填充的内容。问题是当我在我的代码中引用 TblUser 时,它只看到 MoreValues 属性而没有它的父母。
    • 所以...我有一个带有一个名为 UserDetails(long userID) 的构造函数的对象。 UserDetails 构造函数填充 TblUser 对象,该对象通过 UserDetails 中的 TblUser UserObj 属性公开。所以 UserDetails.UserObj.FirstName (有点难看)和 UserDetails.FullName - 这是我自己的自定义属性。那么我该如何优化呢?
    猜你喜欢
    • 2018-10-23
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多