可攜式子集專案可讓 .NET 元件程式設計人員維護單一來源樹狀結構並建置系統,同時仍支援多個 .NET 實作(桌面、Silverlight、Windows Phone 和 Xbox)。 可攜式子集專案只會參考可用於任何 .NET 實作之 .NET 元件的可攜式連結庫。
新增服務參考詳細數據
在可攜式子集專案中新增服務參考時,會強制執行下列限制:
針對 XmlSerializer,只允許常值編碼。 SOAP 編碼會在匯入期間產生錯誤。
針對使用 DataContractSerializer 案例的服務,會提供數據合約代理,以確保重複使用的類型只來自可攜式子集。
需要依賴於可攜式庫不支援的系結的端點(BasicHttpBinding, WSHttpBinding 除外,且不包括交易流程、可靠會話或MTOM編碼,以及對應的自定義系結)將被忽略。
匯入之前,郵件標頭會從所有作業中的所有訊息描述中刪除。
從產生的用戶端 Proxy 程式碼中移除非可攜式屬性 DesignerCategoryAttribute、SerializableAttribute 和 TransactionFlowAttribute。
從 ServiceContractAttribute、OperationContractAttribute 和 FaultContractAttribute 移除非可攜式屬性 ProtectionLevel、SessionMode、IsInitiating 和 IsTerminating。
所有服務作業都會在用戶端代理上產生為非同步作業。
已移除使用非可攜式類型的產生的用戶端建構函式。
CookieContainer實例會在產生的用戶端上公開。
註解會插入檔案頂端,以識別程式代碼產生器的元件和版本:
// This code was auto-generated by Microsoft.VisualStudio.Portable.AddServiceReference, version 1.0.0.0ISerializable介面不受支援。
不支援 Net.Tcp 和 PollingDuplex 系結
DataContractSerializer一律會用於故障。
IsWrapped 不支援於可攜式子集專案中。