根据wcf服务的属性创建控件

时间:2014-04-24 09:41:06

标签: c# .net wcf

我需要在C#,web或windows中启动一个项目,以便我可以测试我们的WCF服务。由于我们有很多WCF项目,我有想法让它变得通用,因为否则我可能需要编写一百多个小工具。我的个人感觉 Generic 是必须的。我的想法是根据参数创建控件。

假设我可以使用localhost/Client/GetClientDetail.svc形式输入网址。

GetClientDetail方法需要以下参数:

string ClientName
enum Gender
bool IsActive

我想如果在我的form / aspx页面上可以动态生成控件:

string = textbox
enum = Dropdown
bool = Checkbox

您能指出我正确的方向或在线示例吗?我知道可以做到这一点的Windows工具,但我想创建类似的东西,但我自己。原因是,如果我有一个文件,我必须上传到服务,然后我会注意到该参数是byte类型,然后我可以拥有自己的usercontrol,我可以通过浏览按钮将我的表单选择文件。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

请参阅此MSDN页面:WCF Test Client (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答案。这将是一个开始寻找构建自己的测试工具的方法的好地方。