1
有誰知道在WCF中列出各種操作合同的UriTemplate的方法嗎?我想要做的是以某種方式在IntegrationTesting中創建自己託管的服務並遍歷所有操作合同並儘可能地打印UriTemplates。列出WCF操作合同的UriTemplate?
有誰知道在WCF中列出各種操作合同的UriTemplate的方法嗎?我想要做的是以某種方式在IntegrationTesting中創建自己託管的服務並遍歷所有操作合同並儘可能地打印UriTemplates。列出WCF操作合同的UriTemplate?
你的意思是行動? OperationContract上沒有UriTemplate屬性。
如果是,您可以使用反射來獲取類型的方法,並從每個方法獲取OperationContractAttribute以獲取它的Action屬性。
var methods = typeof (IService1).GetMethods();
IEnumerable<string> actions = methods.Where(
m => m.GetCustomAttributes(typeof (OperationContractAttribute), true).Count() > 0)
.Select(m =>
((OperationContractAttribute)m.GetCustomAttributes(typeof (OperationContractAttribute), true).First()).Action);
Console.WriteLine(string.Join("\r\n",actions.ToArray()));
編輯:正如馬克提到,你可能會WebGet後,所以用WebGetAttribute
和Action
與UriTemplate
或任何屬性,你希望看到的替換OperationContractAttribute
。
WCF REST方法基本上在每種方法上都具有[OperationContract]和[WebGet]屬性。我認爲這就是OP所追求的。 – 2010-02-13 17:13:01
謝謝,馬克,我還沒有明確地使用REST,但現在你提到它... – 2010-02-13 20:58:00
不完全是我在找什麼,但我改變了WebGetAttribute和WebInvokeAttribute,並能夠找到兩個有問題的Uri模板I寧願能夠得到那個正在運行的服務,但只要我可以測試它,我總是很開心:) – mhenrixon 2010-02-13 23:30:03