我有一个类库,我想将其作为 WCF 服务公开给外界。我的类包含抽象类、普通类、枚举等。
我简单地希望人们可以在他们的项目中对我的类库进行“服务引用”,然后他们就开始使用它。
我如何实现这个目标?
最佳答案
如果您还没有完成此操作,那么不开始就可以避免犯下大错误。
类库被设计为类库。服务被设计为服务。它们是两个不同的事物,有着不同的目标。
例如,您可能定义了一个枚举、一个具有该枚举类型属性的 EventArgs 派生类、一个采用该 EventArgs 类型的事件处理程序委托(delegate),并且您可能有一个或多个公开事件的类使用该委托(delegate)类型。
这些东西在服务中公开都没有任何意义!
相反,您应该做的是设计您的服务来公开您想要公开的功能。为此,该服务当然会使用您的类库。
类库和服务之间的一个不同之处是服务应该设计为可跨平台使用。考虑一下当 Java 客户端使用您的服务时会发生什么:它将有一个与您的服务公开的操作相对应的代理类。这些代理方法将具有原始类型的参数,以及与传入和传出服务的数据结构相匹配的代理类型的参数。
Java 客户端显然不会使用与服务器端操作相同的 .NET 类型!
构建 .NET 客户端的默认方法的工作方式完全相同 - 通过代理类。您的问题表明您希望公开类库会将实际的类导出到客户端。事实并非如此。如果您决定将客户端与服务器使用的确切 .NET 类耦合,那么客户端将需要具有服务器端程序集,就像客户端使用普通的类库一样。
关于c# - 将类库公开为 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1276850/