基于wcf服务的属性创建控件

本文关键字:创建 控件 属性 wcf 服务 基于 | 更新日期: 2023-09-27 17:59:42

我需要在C#、web或基于windows的环境中启动一个项目,以便测试我们的WCF服务。由于我们有很多WCF项目,我想尝试将其通用化,因为否则我可能需要编写一百多个小工具。就我个人而言,通用是必须的。我的想法是基于参数创建控件。

假设我可以以localhost/Client/GetClientDetail.svc的形式输入url。

GetClientDetail方法需要以下参数:

string ClientName
enum Gender
bool IsActive

我希望在我的form.aspx页面上,控件可以动态生成:

string = textbox
enum = Dropdown
bool = Checkbox

你能给我指一个正确的方向吗?或者网上的一个例子。我知道windows工具可以做到这一点,但我想自己创建类似的东西。原因是,如果我有一个文件必须上传到服务,那么我会注意到参数的类型是byte,然后我可以有自己的用户控制,我可以用浏览按钮来选择文件。如有任何帮助,我们将不胜感激。

基于wcf服务的属性创建控件

你试过官方的WCF Test Client吗?如果我记得正确的话,它甚至会在调试中运行WCF服务项目时自动显示,而且它几乎完全符合您的需要。

请参阅此MSDN页面:WCF测试客户端(WcfTestClient.exe)


编辑,因为问题更改为WcfTestClient不足

您可以使用反射工具(例如IlSpy)来查看Microsoft测试工具的工作原理,它是在.NET中构建的。我开始四处寻找,发现了Microsoft.Tools.TestClient.Workspace.AddServiceProject(...)方法。它执行以下操作:

var serviceAnalyzer = new ServiceAnalyzer();
var serviceProject = serviceAnalyzer.AnalyzeService(
    endpoint, 
    addServiceWorker, 
    startProgress, 
    progressRange, 
    out error);

其中,endpoint是包含服务端点Uri的字符串。一旦进入ServiceAnalyzer,事情就会变得有趣,并且有点超出了简单SO答案的范围。这将是一个开始寻找构建自己的测试工具的方法的好地方。