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

C# 基于wcf服务的属性创建控件,c#,.net,wcf,C#,.net,Wcf,我需要启动一个基于C#、web或windows的项目,以便测试我们的WCF服务。由于我们有很多WCF项目,我有一个想法,试图使它通用,因为否则我可能不得不写超过一百个小工具。对于我个人来说,通用性是必须的。我的想法是根据参数创建控件 假设我可以以localhost/Client/GetClientDetail.svc的形式输入url GetClientDetail方法需要以下参数: string ClientName enum Gender bool IsActive 我希望在我的表单/asp

我需要启动一个基于C#、web或windows的项目,以便测试我们的WCF服务。由于我们有很多WCF项目,我有一个想法,试图使它通用,因为否则我可能不得不写超过一百个小工具。对于我个人来说,通用性是必须的。我的想法是根据参数创建控件

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

GetClientDetail
方法需要以下参数:

string ClientName
enum Gender
bool IsActive
我希望在我的表单/aspx页面上可以动态生成控件:

string = textbox
enum = Dropdown
bool = Checkbox

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

您是否尝试过官方的
WCF测试客户端
?如果我记得正确的话,当您在调试中运行WCF服务项目时,它甚至会自动显示,并且它几乎完全满足您的需要

请参阅此MSDN页面:


编辑,因为问题更改为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答案来说有点超出范围。这将是一个开始寻找构建您自己的测试工具的方法的好地方