我正在寻找有关如何在多个Visual Studio项目之间最佳共享代码的建议。我正在努力解决一个基本话题,试图找到一些想法来克服它。
我的解决方案有:
所有项目通用的功能示例是需要调用一些常见的Web服务,或者需要从Amazon S3读取和写入。
我努力的地方就是:显然,实现公共功能的代码应该自行分解,例如在一个单独的类库项目中。例如,与S3交谈,代码需要知道我的Amazon凭据,S3端点等 - 所有这些通常都存储在应用程序配置文件中。但我不喜欢将配置文件放在类库项目中的想法,因为它将特定的实现绑定到它们。但是为了不这样做,我必须从调用项目中传递这些信息。例如,Web应用程序的web.config和控制台应用程序的app.config文件包含此连接信息。在调用S3代码时,我会假设将此配置信息传递给共享代码。
然而,这对我来说似乎很难吃,我不知道为什么。我仍然觉得我将S3代码(例如)绑定到特定的配置方法,如果这有意义的话。我不确定我的感觉是否是一种错误的偏见。
*例如,我可能需要传递任意数量的配置数据:
所以每次我在主应用程序中添加一个配置变量时,我都必须修改公共代码的构造函数。事情会不断发生。
你能就此提出建议吗?
答案 0 :(得分:0)
我喜欢使用Configuration对象作为参数,即使添加/删除属性,签名也不会改变。例如......
public class AmazonConfigSettings {
public string AWSkey { get; set; }
public string ApiEndpoint { get; set; }
......
}
您的签名可能总是如下:
public MySharedClass(AmazonConfigSettings config) { .... }
即使(亚马逊)完全改变了他们的网络服务设置。