C# 通过反射自动生成WCF服务。
我们目前正在编写一个后端系统,并计划通过WCF提供一层方法。是否有任何工具或开源库可以通过读取属性的反射(例如[WCFEnabled])使方法通过特定的WCF通道可用C# 通过反射自动生成WCF服务。,c#,.net,wcf,reflection,attributes,C#,.net,Wcf,Reflection,Attributes,我们目前正在编写一个后端系统,并计划通过WCF提供一层方法。是否有任何工具或开源库可以通过读取属性的反射(例如[WCFEnabled])使方法通过特定的WCF通道可用 例如,想象一个WCF服务,ItemService。在Item类中,将有一个名为“AddItem”的方法。添加[WCFEnabled]后,该方法将通过ItemService在编译时可用。Erm[运营合同] 但是,不确定这些方法是否适用于类方法,通常它们被放在接口方法上,并且您的类实现了接口。我们已经通过使用T4模板来构建服务接口、实
例如,想象一个WCF服务,ItemService。在Item类中,将有一个名为“AddItem”的方法。添加[WCFEnabled]后,该方法将通过ItemService在编译时可用。Erm<代码>[运营合同]
但是,不确定这些方法是否适用于类方法,通常它们被放在接口方法上,并且您的类实现了接口。我们已经通过使用T4模板来构建服务接口、实现和客户端代理做了类似的事情
T4模板解析服务项目并提取所有用自定义属性修饰的方法。然后,它为发现的每个服务构建带有实现类/接口的svc文件。它还创建客户端代理 OperationContract属性同样适用于类方法。这是您通常编写WCF的方式。您可以编写一个接口,并在签名的顶部指定可供外部世界使用的方法。然而,我希望的是,在类库中设计实体时,您可以定义希望通过WCF访问的方法。然后,一个单独的项目将动态地遍历实体,查看哪些实体将被公开,并自动创建一个WCF端点。因此,您不必编写任何WCF代码,只需分配要在通道中公开的方法即可。感谢Wouter de Kort,从我所读到的内容来看,这似乎是前进的方向。您是否遵循了与我们的场景类似的示例?我在看@StephenBorg,我没有遵循任何粒子的例子。我首先手工编写代理代码(没有添加服务引用添加的所有bagege),然后为服务接口、svc文件和服务实现创建T4模板。整个代理只是一个调用实际服务代码的WCF包装器,因此易于实现。