我有一個圖書館,我需要生成客戶端代理類,並運行此命令,並在我的本地盒服務時的現有代碼工作正常WCF客戶端代理生成新的方法除了沒有
svcutil.exe /config:thn /r:Citi.Rbcs.BusGn.dll /r:Citi.Rbcs.Buscm.dll net.tcp://localhost:8088/RbcThnService/mex
的客戶端代理生成正常。 RbcThnService使用接口IRbcThinService。如果我再添加一個新的方法到界面如下
[OperationContract(ProtectionLevel = ProtectionLevel.EncryptAndSign)]
[FaultContract(typeof (GenericException))]
[FaultContract(typeof (CustomException))]
RbcCustomerStructure GetCustomerStructures(string CustomerId, short QueueId, DateTime dateUpdate, RbcSecurityContext securityContext);
然後重建和安裝服務,並嘗試重新生成客戶端代理,我得到
There is an error in the XML document.
The value for the 'type' attribute is invalid - 'q32:ArrayOfstring' is an invalid value for the 'type' attribute.
這聽起來像它沒有找到一個聲明中的某種類型,但奇怪的是,接口中有另一種方法,在原始庫中有完全相同的簽名,這使得客戶端代理生成得很好。所以我只是用一個新名字創建一個完全相同的方法。
有沒有人有任何建議?
更新:好的情節變厚了,如果我註釋掉現有的方法之一,然後重試 - 它適用於新的方法。我試圖將其剝離到只有少數方法加上新的方法,它的工作原理。我逐漸地重新引入了其他方法,並且一直在繼續工作,直到我添加了最後一個,然後它出錯了。有趣的是,我得到了一個原始方法註釋掉,它工作,然後我創建了一個第二個虛擬新方法,它錯了,相同的錯誤,但不是ArrayOfstring它有一個不同的類型,因爲它失敗了,因爲的。
因此,如果我沒有吠叫錯誤的樹,它似乎與我在接口定義中擁有的方法數量或生成的XML的潛在長度有關。我應該知道有什麼限制嗎?