C#: 是否有自动创建Getter和Setter的方法?

3

我正在使用Mongo的官方C#驱动编写Web应用程序。

为了实现引用,必须手动获取它们。

假设我们有以下内容:

class User {
    ...
    public MongoDBRef Topic { get; set; }
}

为了获取主题,我们需要执行以下操作:
db.FetchDBRefAs<Topic>(user.Topic);

要创建一个新的:

user.Topic = new MongoDBRef(TopicsTable, topic._id);

我决定创建一个虚拟属性,以使其更加方便:

    [BsonIgnore]
    public Topic _Topic
    {
        get
        {
            return db.FetchDBRefAs<Topic>(Topic);
        }
        set
        {
            CreatedAd = new MongoDBRef(TopicsTable, value._id);
        }
    }

现在我可以像这样使用它:
 user._Topic = someTopic;
 anotherTopic = user._Topic;

显然,为所有引用的对象做这件事很麻烦。有没有办法使这个过程自动化呢?谢谢。

3
您没有使用正确的术语。那不是“虚拟属性”。一个“虚拟属性”实际上应该在其中具有 virtual 关键字: public virtual Topic _Topic {...},这意味着它可以在派生类中被重写。那只是一个“显式实现的属性”,或者“手动属性”,与“自动属性”相对。 - R. Martinho Fernandes
2个回答

5
你可以使用Visual Studio代码片段,我猜想。我自己从未这样做过,但我认为这正是它们通常用于的类型。

3
你可以使用Visual Studio代码片段
输入prop并按两次Tab键,然后只需填写属性的类型和名称即可。
内置的代码片段包括具有支持字段的完整属性(propfull)、只读属性(propg)等许多内容 - 例如空构造函数(ctor)。
你也可以创建和使用自己的代码片段。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接