我想在Visual Studio中使用Web服務。我添加了一個服務引用,將它指向一個WSDL文檔。我得到了一堆像冠軍一樣工作的生成代碼。
的問題
在服務引用對話框,我所選擇的「內部」作爲「爲生成的類訪問級別」。看起來好像將「internal」關鍵字放在WhateverSoapClient類的前面。 Groovy的。但是,生成的模型類都在「公開部分」關鍵字前面。 「部分」部分是好的(甚至是期望的),但不是公衆。我希望這些類也是內部的。
解決方案?
當然,Visual Studio(svcutil.exe?)正在使用一個模板來生成Reference.cs,對吧?有什麼方法可以更改該模板或指定替代模板嗎?還是我吠叫錯了樹?
謝謝!
我對這件事很陌生,所以我可能對這個問題措辭不好。
編輯:針對Tuzo的評論,我連接Visual Studio中的以下內容:
VS生成一個名爲CatalystEcommerceWebserviceSoapClient的內部類,該類有一個名爲Catalogue_Retrieve()的方法。 Catalogue_Retrieve()返回一個Catalog對象,並且Visual Studio生成Catalog類爲「public partial」。我希望它是內部的。
這裏是被如何產生什麼樣的一些片段:
internal partial class CatalystEcommerceWebsierviceSoapClient : System.ServiceModel.ClientBase<BcApi.EcommerceApi.CatalystEcommerceWebserviceSoap>, BcApi.EcommerceApi.CatalystEcommerceWebserviceSoap {
public BcApi.EcommerceApi.Catalogue Catalogue_Retrieve(...) {
// ...
}
}
public partial class Catalogue : object, System.ComponentModel.INotifyPropertyChanged {
// ...
}
而且響應傑米,我熟悉感謝SubSonic T4模板。所以我已經爲這個問題找到了一些與T4相關的答案。不過,我可能會多挖一點。謝謝你的提示。
Visual Studio在其代碼生成中使用了一個稱爲「T4模板」的系統(可能全部是?)。也許這可能是一個有用的術語,包括在谷歌搜索。 – 2009-11-17 23:04:30
當我添加服務引用並選擇訪問級別爲內部時,在生成的文件中看不到任何「公開部分」。我的ServiceClient和我的DataContract類型都被標記爲「內部部分」。如果你可以發佈一些示例代碼,這可能會有所幫助嗎? – 2009-11-18 03:37:15