IIS 上托管的服务中的 WCF 泛型类型解析器
WCF generic type resolver in service hosted on IIS
我的问题比较理论化,很抱歉开场白
我正在开发一个包含客户端部分和服务部分的框架。客户端与 WCF 服务通信,该服务将消息从一个客户端广播到其他客户端(消息包含 Operations)。关键是如果有人想使用它,他会创建自己的 自己的操作类型 并实现知道如何处理它的组件(一个 Transformator) 并将其提供给服务和客户端管理器,后者将基本上处理通信并使用用户实现的转换器进行必要的修改(如果您感兴趣,它基本上是系统的 c# 实现 described here).
现在我的问题是,如果我希望能够创建自己的操作类型(即 DataContracts),我就不能依赖 KnownTypes,因为如果不重新编译框架源代码,它就无法扩展会使它作为一个框架完全无用。在寻找解决方案时,我发现 this article 提供了一个使用通用解析器的解决方案,它可以解析调用程序集和引用程序集中的所有类型。现在这是我有点迷路的部分。
在客户端(如果我尝试使用此框架),我只是使用通用解析器来解析包含我自己的操作类型的引用程序集中的类型。如果我在一个单独的应用程序中托管该服务(我现在这样做是为了测试),则该过程是对称的。但是,如果我想在 IIS 上托管该服务,会发生什么情况。在这种情况下,您将如何将用户定义的类型提供给服务。
到目前为止我唯一能想到的就是创建一个新项目,创建服务 class 的子 class,使用用户定义的操作引用程序集并使用通用解析器。有没有更简洁的方法来做到这一点?
查看托管可扩展性框架 (MEF),它适用于通过可插入部件组合您的应用程序。
您标记您的应用程序需要解析的部分(导入)并创建可以解析这些接口的部分(导出)。 MEF 将为您进行发现并编写应用程序。
我的问题比较理论化,很抱歉开场白
我正在开发一个包含客户端部分和服务部分的框架。客户端与 WCF 服务通信,该服务将消息从一个客户端广播到其他客户端(消息包含 Operations)。关键是如果有人想使用它,他会创建自己的 自己的操作类型 并实现知道如何处理它的组件(一个 Transformator) 并将其提供给服务和客户端管理器,后者将基本上处理通信并使用用户实现的转换器进行必要的修改(如果您感兴趣,它基本上是系统的 c# 实现 described here).
现在我的问题是,如果我希望能够创建自己的操作类型(即 DataContracts),我就不能依赖 KnownTypes,因为如果不重新编译框架源代码,它就无法扩展会使它作为一个框架完全无用。在寻找解决方案时,我发现 this article 提供了一个使用通用解析器的解决方案,它可以解析调用程序集和引用程序集中的所有类型。现在这是我有点迷路的部分。
在客户端(如果我尝试使用此框架),我只是使用通用解析器来解析包含我自己的操作类型的引用程序集中的类型。如果我在一个单独的应用程序中托管该服务(我现在这样做是为了测试),则该过程是对称的。但是,如果我想在 IIS 上托管该服务,会发生什么情况。在这种情况下,您将如何将用户定义的类型提供给服务。
到目前为止我唯一能想到的就是创建一个新项目,创建服务 class 的子 class,使用用户定义的操作引用程序集并使用通用解析器。有没有更简洁的方法来做到这一点?
查看托管可扩展性框架 (MEF),它适用于通过可插入部件组合您的应用程序。
您标记您的应用程序需要解析的部分(导入)并创建可以解析这些接口的部分(导出)。 MEF 将为您进行发现并编写应用程序。