在.NET中,什么是“Vanilla”对象?

6
我正在阅读来自 MSDN 的有关依赖注入的文章this article from MSDN on Dependency Injection,我看到了一篇文章中我不太明白的术语,引用如下:
“在应用程序开发中使用容器有几个原因。容器提供了将普通对象与其他服务结合的能力。这使得对象对某些基础设施和管道细节(例如事务性和基于角色的安全性)保持无知。往往,客户端代码不需要意识到容器,因此对容器本身没有真正的依赖。”
“这些服务可以通过声明方式配置,这意味着它们可以通过某些外部方式进行配置,包括 GUI、XML 文件、属性文件或普通的 .NET 属性。”
我知道“vanilla”通常指的是平淡无奇的东西,但我不确定在这里的含义。
.NET 中的香草是什么意思?

3
可能是一个冰淇淋管理应用程序的一部分(SCNR)。 - Christoph
这与P语言没有太大关系(尽管我更愿意在.NET上下文中理解它)... 无论如何,这与依赖注入、DI容器等非常相关。 - Shady M. Najib
已更新!现在请检查描述,如果有足够的上下文,请告诉我。 - Shady M. Najib
您的链接指向此页面 - Kobi
1
@George:感谢你的极致改造:D - Shady M. Najib
显示剩余4条评论
2个回答

11

有上下文会让问题更清晰,但通常它用于表示没有“特殊功能”的普通对象(或类型)。例如,如果一个序列化方案声称能处理“vanilla objects”,那么你就不需要为了序列化它而添加额外的属性等。同样地,如果一个ORM与vanilla类型一起工作,它不需要实现特定的接口或任何类似的东西。

编辑:好的,看到上下文后,上面的内容似乎是正确的。

另一种思考方式是,你可以编写一个类型,然后让框架使用它,而类型本身无需知道框架。因此,一些 DI框架要求你装饰类型本身以允许注入,而其他框架则不需要。后者的框架能够使用“vanilla”类型。


更新了!添加了文章链接! - Shady M. Najib
"vanilla .NET-based attributes" 指的是「纯净的基于.NET的属性」。或者说它只是同一件事情的变体? - Shady M. Najib
@Shady:这是一种变化——只是属性,CLR本身并没有特别的了解。我不确定我会使用那个特定的短语,但我猜这就是意思。 - Jon Skeet

1

真的没有头绪...但从意思上我猜测它可能是一个类的实例,只有构造函数,你可以读/写成员而没有其他方法。 这种类型的类通常很有用,因此可能有人为其命名。例如(在C++中考虑)

struct P2d
{
    double x, y;
    P2d(double x, double y) : x(x), y(y) {}
};

更新了!添加了文章链接! - Shady M. Najib

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