問題:我有一個WCF服務,它通過反射調用方法併發送結果。像這樣:WCF發送對象[]而不添加KnownTypeAttributes
[OperationContract] Object InvokeMemberByReflection(string typeName, string name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args);
我這樣做,因爲我有我想要調用現有的API X。我不想爲所有方法編寫包裝。
我也不使用顯式DataContracts,因爲服務器和客戶端都引用相同的一組dll。
然而,對於上面的InvokeMemberByReflection方法中,由於我送方法參數類型的對象的陣列,它看起來像我必須添加API X的所有可能的方法簽名作爲用於KnownTypeAttributes DataContractSerializer的工作。
有沒有解決這個問題的方法? CLR基本上知道包含在對象數組中的元素的類型。它可以不基於此序列化/反序列化(授予它是一個不同的類型)?
此外,我將不勝感激任何其他模式解決這樣的問題。由於顯而易見的原因,反射太慢。
你在訪問什麼類型的API,在沒有任何抽象的情況下將它的所有方法封裝在(重)Web服務調用中可能有意義? –
這是一個測試API,因此性能不是問題。 – Kakira
那你爲什麼要使用網絡服務? –