2011-04-29 92 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 {...} 

应该这样做!

相关问题