我正在开发使用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