我正在开发一个使用WsdlImporter类为WCF服务设置代理的项目。我们在一个特定的函数调用上获得了可怕的性能(约40秒):
_contracts = wsdlImporter.ImportAllContracts
这只会导入两个合约,共有30个操作,所以看起来不应该花这么长时间。
不幸的是,WsdlImporter类属于Microsoft尚未发布PDB符号文件的命名空间(System.ServiceModel.Description)。所以我不能在.NET框架代码中设置断点来进行调试。
我有两个不同的问题:
1)是否有人知道WsdlImporter类或ImportAllContracts()方法的特定性能问题可能会减慢我的速度?
2)更一般地说,任何人都可以提出一个聪明的技巧来调试或破坏没有发布符号的.NET框架类吗?我的一个想法是在我的本地项目命名空间中创建一个新类,然后从Microsoft的http://referencesource.microsoft.com/站点复制源代码。但是,这个特殊的方法调用了其他几个期望参数作为本机.NET对象的函数,而不是我的黑客本地对象,所以这就陷入了死胡同。
非常感谢任何建议!