我在一个解决方案中有两个库项目(除了其他项目),它们必然需要共享某些类,但由于自动更新的原因,它们必须保持分开。
对于共享的类,理想情况下,我想class.cs
在两个库中使用相同的文件,这样我就不必始终检查对类的更改是否通过两个库传播。
但是,两个库的名称空间不同,因此每个库中包含类的文件都需要不同的namespace classlib {}
声明。
如果有一种技术可以通过分支/合并操作来执行此操作,则我正在使用git repo。
目前使用VS2013。
我该如何实现?
例:
library1.dll
namespace library1
{
public class SharedClass
{
/// code must match SharedClass in libary2
}
}
library2.dll
namespace libary2
{
public class SharedClass
{
/// code must match SharedClass in library1
}
}
在公共名称空间(而不是两个不同的名称空间)中声明SharedClass。您可以将文件链接到项目中,而不是实际包含它。
来自msdn:
您可以从Visual Studio中的项目链接到文件。在解决方案资源管理器中,右键单击您的项目,然后选择“添加现有项”。或者,您可以键入Shift + Alt + A。在“添加现有项”对话框中,选择要添加的文件,然后在“添加”下拉列表中,单击“添加为链接”。
namespace Khargoosh.MathLib.Common { public class SharedClass { ... } }
namespace Khargoosh.MathLib.Library1 { ... }
namespace Khargoosh.MathLib.Library2 { ... }
要么
namespace Khargoosh.MathLib { public class SharedClass { ... } }
namespace Khargoosh.MathLib.Library1 { ... }
namespace Khargoosh.MathLib.Library2 { ... }
一种完全其他的处理方式是使用带有某种逻辑的T4模板动态创建文件。* .tt模板文件的内容(不是* .cs文件!):
namespace library1
{
<#@ include file="MyCommonClass.cs"#>
}
并在另一个图书馆
namespace library2
{
<#@ include file="MyCommonClass.cs"#>
}
类文件本身不会声明名称空间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句