我在WCF客戶端傳遞多個enum
值時遇到問題。將枚舉值作爲參數傳遞
class Client
{
static void Main(string[] args)
{
ChannelFactory<IWCFService> channelFactor = new ChannelFactory<IWCFService>("HellowWorldServiceEndpoint");
channelFactor.Open();
IWCFService proxy = channelFactor.CreateChannel();
Console.WriteLine(proxy.GetEnumString(EnumComponents.enumVal1)); // -> SUCCEDED HERE (only one Enum value)
// Console.WriteLine(proxy.GetEnumString(EnumComponents.enumVal1| EnumComponents.enumVal2)); // -> **** FAILS HERE with invalid enum type. *****
Console.Read();
}
}
例外是, 而試圖序列參數http://tempuri.org/:components時出錯。 InnerException消息是'枚舉值'enumVal1,enumVal2'對'Microsoft.Geospatial.Data.Gateway.ObjectModel.EnumComponents'類型無效,無法序列化。如果類型具有DataContractAttribute屬性,請確保存在必要的枚舉值並使用EnumMemberAttribute屬性標記''。請參閱InnerException以獲取更多詳細信息
僅供參考,枚舉來自在WCFclient,WCFserver和WCFinterface中作爲引用添加的公用庫。
如果是普通函數調用,也是一樣的。有沒有可能的方法來解決這個問題?
請參閱[「應該在其標題中包含」標籤?「](http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles),其中共識是「不,他們不應該」! –