我正在開發使用WCF服務的Windows Phone 7應用程序。添加用於WCF服務和Windows Phone 7應用程序的枚舉類型
我需要在這兩個項目中使用下面的代碼:
public enum GameType
{
MonoPlayer = 1,
MultiPlayer = 2
}
我敢肯定,我不應該在這兩個項目定義此枚舉,所以我找出我需要找到另一種解決方案。
我想我需要使用第三個項目,我必須把枚舉。
您有更好的方法嗎?
我正在開發使用WCF服務的Windows Phone 7應用程序。添加用於WCF服務和Windows Phone 7應用程序的枚舉類型
我需要在這兩個項目中使用下面的代碼:
public enum GameType
{
MonoPlayer = 1,
MultiPlayer = 2
}
我敢肯定,我不應該在這兩個項目定義此枚舉,所以我找出我需要找到另一種解決方案。
我想我需要使用第三個項目,我必須把枚舉。
您有更好的方法嗎?
顯然,可重用類必須放入單獨的項目中。
我通常做的是有一個單獨的項目,它具有所有類和枚舉,它們具有所引用的那種域邏輯(如GameType),並在其他項目中共享並稱之爲:Xpto.Common
然後我在我的兩個項目中引用這個共同的項目。這使得類和枚舉可重用,並保持組織。
WCF使用合約,所以枚舉必須作爲契約進行裝飾。
例如,你可以有:
[DataContract]
public enum GameType
{
[EnumMember]
MonoPlayer = 0,
[EnumMember]
MultiPlayer = 1
}
你把這個文件枚舉在一個單獨的項目,以便它可以通過客戶端和WCF服務共享。
然後,在服務合同(即,WCF服務的接口),您必須聲明枚舉爲「已知類型」,比如:
[ServiceContract]
[ServiceKnownType(typeof(GameType))]
public interface IMyService {...}
應該這樣做!
而且..我可以在Windows Phone和WCF上使用該項目而不做任何更改嗎? – VansFannel 2011-04-29 10:14:13
有關更多詳細信息,請參閱我的其他答案。 – 2011-04-29 10:29:38