Business Objects中的图像的System.Drawing.Image?

时间:2008-11-03 10:59:52

标签: .net image business-objects system.drawing

我想将图像存储在业务对象中。在MSDN中,我看到System.Drawing-namespace提供了大量的GDI +特征等。

是否可以将Image存储在业务层的System.Drawing.Image类中(这是一个“仅限”的类库),因此也包括对System.Drawing的引用?我觉得这样做有点不好,因为看起来我在业务代码中有特定于UI的引用。此外,代码可能变得不必要地依赖于平台(尽管这只是理论上的一个问题,因为我们不为多个平台开发)。

如果不正确,哪种类型最适合?

感谢您的回复!

的Matthias

1 个答案:

答案 0 :(得分:2)

从您的问题来看,您的业务逻辑层似乎需要以非常低级的方式处理图像(否则,我猜您只是存储图像URL或其他内容......)。这将图像/位图的概念直接放置在业务逻辑领域中,因此完全可以依赖System.Drawing命名空间来实现此目的。

如果您觉得图像在类库中没有位置,one look System.Drawing itself应该说服您:它是类库的一个主要示例(并且设计得非常合理),几乎没有其他功能比处理图像。

它与UI无关(Windows.Forms和朋友处理这些)。此外,System.Drawing存在于安装了.NET Framework的任何系统上,因此不存在依赖性问题。

如果您担心跨平台兼容性,为图像创建包装类可以缓解这些问题。但是,由于位图结构本身很可能已经是特定于平台的(例如,除非您只在外部接口上使用PNG),否则这可能会有点过头,因为您在没有增益的情况下增加了复杂性。 ..