首先请告诉我,就架构而言,这个解决方案结构是否合适? 我有XXXX。中心的商业项目。 XXXX。合同项目有参考。 XXXX。服务项目参考合同和业务项目。
现在我希望我的服务托管在灵活的环境中。这就是为什么我想把自定义托管逻辑放在服务>主机文件夹。此项目还将具有自定义实例提供工具,以便可以使用某些参数构造函数创建我的服务类。 此外,我需要有不同类型的端点,所以我还有一个Bindings文件夹
这3个定制的东西目前满足我的要求。
现在请为我提供一些Bindings / Host / Instance的示例代码片段
答案 0 :(得分:1)
我不知道你的意思
我希望我的服务托管在灵活的环境中
和
我想将自定义托管逻辑放入服务>主机文件夹
使用的托管容器的类型取决于服务实现引用的项目类型(Web,控制台,Windows服务等)。这不是您想要捆绑到一个项目中的东西,您应该有不同的每个不同的服务实例的项目(甚至是不同的解决方案)。
这会导致您的一般解决方案结构。通过将合同作为项目放在解决方案中,您可以将合同程序集构建(可能还有部署)与解决方案的构建和部署相结合。理想情况下,合同应该在他们自己的解决方案中,以便可以与服务实现分开构建和管理。如果在某个时候您需要维护多个版本的合同怎么办?
我认为您创建可以对任何人提供任何内容的通用服务的方法是复杂的。您应该让WCF为您处理这类工作,至少为每个服务实现创建一个不同的项目,并将绑定管理推迟到部署时。
此外,除非您编写自己的自定义绑定代码,否则不需要用于绑定的文件夹。
绑定可以(并且应该)在您发布端点时在配置中定义,并且在某种程度上,决定使用哪个传输绑定应该是管理或管理而不是开发问题。