0

我有这个示例类:

公开课测试
{
        私有 ObjectId _mongoID;
        私人 A _a = 新 A();
        私有 ArrayList _alData = new ArrayList(); // B 个对象的数组列表
        #endregion

        公共测试(A a,ArrayList alData)
        {
            _a = a;
            _alData = alData;
        }

        [BsonId]
        公共 ObjectId MongoID
        {
            得到;

            放;
        }

        公众号
        {
            得到
            {
                返回_a;
            }
        }

        公共阵列数据
        {
            得到
            {
                返回 _alData.ToArray();
            }
        }
}

我希望有这样的结果:

{“_id”:ObjectId(“000000000000000000000000”),“_a”:{A成员},“dta”:[{B成员},{B成员}]}

我能怎么做 ?

谢谢

4

1 回答 1

1

这个类是只读的和不可变的。这是你的意图吗?如果是这样,那么以下是完成您所要求的最佳方法。请注意,您至少需要使用驱动程序版本 1.4.1 才能工作,并且您无法从数据库中读取此类。仅由于属性的只读性质,它才会持续存在。

public class Test
{
  private A _a;
  private ArrayList _alData;

  [BsonId]
  public ObjectId Id { get; set;}

  [BsonElement("_a")]
  public A A { get { return _a; } }

  [BsonElement]
  public Array dta { get { return _alData.ToArray(); } }
}
于 2012-04-24T12:30:30.707 回答