[英]Proper project organization and architecture for sharing code in Visual Studio/.NET projects
我正在寻找有关如何在多个Visual Studio项目之间最佳共享代码的建议。 我正在为一个基本主题而苦苦挣扎,并试图获得一些克服它的想法。
我的解决方案有:
所有项目共有的功能示例是,例如,需要调用某些通用的Web服务,或者需要从Amazon S3进行读写。
我要努力解决的问题是:显然,实现通用功能的代码应该自己分解,例如在单独的类库项目中。 例如,要与S3对话,代码需要知道我的Amazon凭证,S3终端节点等-所有这些内容通常都存储在应用程序配置文件中。 但是我不喜欢将配置文件放在类库项目中的想法,因为它会将特定的实现绑定到它们。 但是为了不这样做,我必须从调用项目中传递此信息。 因此,例如,Web应用程序的web.config和控制台应用程序的app.config文件包含此连接信息。 调用S3代码时,我假设会将此配置信息传递到共享代码中。
但是,这对我来说似乎令人讨厌*,我不确定为什么。 在我看来,我仍然感觉像是将S3代码(例如)“绑定”到特定的配置方法,如果那是有道理的。 我不确定我的感觉是否是一种错误的偏见。
*例如,我可能要传递任意数量的配置数据:
因此,每次我在主应用程序中添加一个config变量时,都必须修改通用代码的构造函数。 事物会不断地运动。
你能给我建议吗?
我喜欢使用Configuration对象作为参数,这样即使您添加/删除属性,签名也不会改变。 例如....
public class AmazonConfigSettings {
public string AWSkey { get; set; }
public string ApiEndpoint { get; set; }
......
}
这样,您的签名就始终可以像:
public MySharedClass(AmazonConfigSettings config) { .... }
即使(完全)Amazon彻底检查了其网络服务设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.