|
|
1
1
要使其“工作”,请使用一个Func,它返回抽象类的实例。 在你的秘密回购协议中:
在与顾问分享的回购协议中:
在构建服务器上,您可以从两个repo中提取,并将启动项目设置为提供给顾问的项目。但是,当您在内部进行测试和开发时,您将启动项目设置为您的版本,而实现却什么都不做。 作为补充说明,如果您认为您正在做的事情需要受到签署保密协议的顾问的保护,请确保在发布时混淆。 |
|
2
1
这通常是一个两步过程:
|
|
3
0
你正在寻找的过程通常被称为 stubbing .在本例中,您选择将集成功能封装在库中,而不是web服务中,但原理是相同的。
这听起来好像你把依赖关系搞错了。如果顾问的代码引用了你的应用程序,那么你的应用程序就不能引用它——这将是一个循环依赖。取而代之的是,让你的应用程序更符合以下要求:
抽象类——它可以很容易地成为C#中的一个接口——驻留在Contracts程序集中。这是应用程序唯一的编译依赖项。然后 在运行时 使用配置加载存根,或者使用IoC容器加载完整的实现。例如 Unity 你需要它 configuration API .引用要在配置文件中使用的真实类型并进行更改 只有那个 更新应用程序以使用完整功能。 |
|
|
4
0
首先,如果你不想和其他开发者分享你的代码,我认为你需要实现一个合适的插件系统。 其次,您应该针对接口而不是其实现进行编码。第一个原因是你没有它,第二个原因是你可能想为不同的第三方软件切换实现。 如果你需要一个用于测试的实例,你可以使用手写的mock或mock框架。如果您以后需要一个真实的实例(当其他开发人员交付时),您可以使用一些设计模式,比如factory模式或其他模式来创建。如果以后要更改实现,请尽量避免使用new关键字。 |