基于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 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答案的范围。这将是一个开始寻找构建自己的测试工具的方法的好地方。