2011-04-29 58 views
3

我正在開發使用WCF服務的Windows Phone 7應用程序。添加用於WCF服務和Windows Phone 7應用程序的枚舉類型

我需要在這兩個項目中使用下面的代碼:

public enum GameType 
{ 
    MonoPlayer = 1, 
    MultiPlayer = 2 
} 

我敢肯定,我不應該在這兩個項目定義此枚舉,所以我找出我需要找到另一種解決方案。

我想我需要使用第三個項目,我必須把枚舉。

您有更好的方法嗎?

回答

0

顯然,可重用類必須放入單獨的項目中。

+0

而且..我可以在Windows Phone和WCF上使用該項目而不做任何更改嗎? – VansFannel 2011-04-29 10:14:13

+0

有關更多詳細信息,請參閱我的其他答案。 – 2011-04-29 10:29:38

1

我通常做的是有一個單獨的項目,它具有所有類和枚舉,它們具有所引用的那種域邏輯(如GameType),並在其他項目中共享並稱之爲:Xpto.Common

然後我在我的兩個項目中引用這個共同的項目。這使得類和枚舉可重用,並保持組織。

2

WCF使用合約,所以枚舉必須作爲契約進行裝飾。

例如,你可以有:

[DataContract] 
public enum GameType 
{ 
    [EnumMember] 
    MonoPlayer = 0, 

    [EnumMember] 
    MultiPlayer = 1 
} 

你把這個文件枚舉在一個單獨的項目,以便它可以通過客戶端和WCF服務共享。

然後,在服務合同(即,WCF服務的接口),您必須聲明枚舉爲「已知類型」,比如:

[ServiceContract] 
[ServiceKnownType(typeof(GameType))] 
public interface IMyService {...} 

應該這樣做!