在多个项目中使用类的一部分

时间:2010-04-23 06:49:43

标签: c# refactoring partial-classes

我有一组方法可以通过SQL连接进行一些实用工作,到目前为止,这些方法已经从一个项目复制到另一个项目。但随着时间的推移,项目数量已经增长,我需要保持这些方法同步,以防我发现错误或需要更新它。

我已经设法让它达到SQL访问类是部分类的状态,其中一部分特定于项目并包含特定数据库的包装器。第二部分是常见的部分,包含在所有项目特定数据库中使用的方法。

问题是现在我将“实用程序”类复制到8个项目中,具有相同的内容,但是在不同的名称空间中。在C / C ++中它会很简单,因为我只需要#included文件的内容。我该怎么做C#?

2 个答案:

答案 0 :(得分:4)

将类分开,以便您可以在一个公共项目中拥有一个包含所有公共代码的完整类。使用通用接口来表示特定于项目的功能位,在每个项目中实现该接口,并在必要时将接口实例传递到公共代码中。

答案 1 :(得分:1)

正如乔恩所说,图书馆大会是一个好主意。

在某些情况下,程序集引用不能自行满足要求,因此,如果不能创建库程序集,则可以使用Visual Studio中容易忽略的功能adding an existing file as a link

这将允许您在所有项目中可用的文件中维护分部类的公共部分。

唯一的限制是使用相对路径来引用文件。

我使用此策略的唯一问题是使用开源Mercurial scc提供程序。从项目中删除链接文件时,将删除基础文件。相当讨厌,但这对你来说可能不是问题。

更新:VS Mercurial SCC中的链接文件错误应在下一版本中修复。