我有一组方法可以通过SQL连接进行一些实用工作,到目前为止,这些方法已经从一个项目复制到另一个项目。但随着时间的推移,项目数量已经增长,我需要保持这些方法同步,以防我发现错误或需要更新它。
我已经设法让它达到SQL访问类是部分类的状态,其中一部分特定于项目并包含特定数据库的包装器。第二部分是常见的部分,包含在所有项目特定数据库中使用的方法。
问题是现在我将“实用程序”类复制到8个项目中,具有相同的内容,但是在不同的名称空间中。在C / C ++中它会很简单,因为我只需要#included文件的内容。我该怎么做C#?
答案 0 :(得分:4)
将类分开,以便您可以在一个公共项目中拥有一个包含所有公共代码的完整类。使用通用接口来表示特定于项目的功能位,在每个项目中实现该接口,并在必要时将接口实例传递到公共代码中。
答案 1 :(得分:1)
正如乔恩所说,图书馆大会是一个好主意。
在某些情况下,程序集引用不能自行满足要求,因此,如果不能创建库程序集,则可以使用Visual Studio中容易忽略的功能adding an existing file as a link
这将允许您在所有项目中可用的文件中维护分部类的公共部分。
唯一的限制是使用相对路径来引用文件。
我使用此策略的唯一问题是使用开源Mercurial scc提供程序。从项目中删除链接文件时,将删除基础文件。相当讨厌,但这对你来说可能不是问题。
更新:VS Mercurial SCC中的链接文件错误应在下一版本中修复。