所以這裏的問題是:我已經寫了一個應用程序來調用聯邦快遞航運 API,但現在我還需要在發貨請求後立即請求一個單獨的速率請求。 (原因是我需要一個非帳戶費率的數據和指標,但我沒有得到任何費率的第三方裝運請求)。當我創建的速度要求,我可以做這樣的事情的簡單值:如何將Fedex傳送請求類型轉換(或轉換)爲C#中的速率請求類型?
raterequest.RequestedShipment.ServiceType = (rateReference.ServiceType)shiprequest.RequestedShipment.ServiceType;
但我不任何複雜類型做到這一點,是這樣的:
raterequest.RequestedShipment.Shipper = (rateReference.Shipper)shiprequest.RequestedShipment.Shipper;
或者即使是這樣的:
raterequest.RequestedShipment.Shipper.Address = (rateReference.Address)shiprequest.RequestedShipment.Shipper.Address;
...因爲.Net會抱怨說它不能轉換船舶地址類型和費率地址類型(儘管它們是相同的)。我可以一次設置一個「raterequest」參數(即「Address.City」),但這很麻煩,我最終想做一些更復雜的事情(即使用相同的請求參數以最少的附加代碼調用多個API)。有沒有任何通用的解決方案,以便相同的複雜類型(但在不同的名稱空間)可以來回轉換?
你確定它們是同一類型嗎?我不熟悉它們公開給你的.NET包裝器,但它們在兩個不同的命名空間中完全可能有兩個具有相同名稱的不同類型。 – Tejs
需要更多信息。例如'RequestedShipment.Shipper'和'rateReference.Shipper'之間有什麼區別,爲什麼你不能直接使用'raterequest.RequestedShipment.Shipper.Address',因爲我沒有看到任何人可以回答你的問題。 –
@Ramhound,因爲我正在尋找一種用於複雜類型轉換的通用解決方案。我會將其編輯到我的問題中。 – TheGerm