添加 WCF 服务和 Windows Phone 7 应用程序中使用的枚举类型

发布于 2024-11-03 21:31:57 字数 259 浏览 0 评论 0原文

我正在开发一个使用 WCF 服务的 Windows Phone 7 应用程序。

我需要在两个项目上使用以下代码:

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

我确信我不能在两个项目上定义这个枚举,所以我发现我需要找到另一个解决方案。

我想我需要使用第三个项目,我必须在其中放置枚举。

你有更好的方法吗?

I'm developing a Windows Phone 7 app that uses a WCF service.

I need to use on both projects the following code:

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

I'm sure I must not define this enum on both projects, so I figure out that I need to find another solution.

I think I need to use a third project where I have to put enum.

Do you have a better approach?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

も让我眼熟你 2024-11-10 21:31:57

WCF 使用契约,因此必须将枚举装饰为契约。

例如,您可以:

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

    [EnumMember]
    MultiPlayer = 1
}

将这个枚举文件放在一个单独的项目中,以便客户端和 WCF 服务可以共享它。

然后,在服务契约(即 WCF 服务的接口)中,您必须将枚举声明为“已知类型”,如下所示:

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

应该可以了!

WCF uses contracts, so the enum must be decorated as a contract.

For instance, you can have:

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

    [EnumMember]
    MultiPlayer = 1
}

You put this enum file in a separate project, so that it can be shared by client and WCF service.

Then, in the service contract (i.e., the interface of your WCF service), you must declare the enum as a "known type", like so:

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

That should do it!

你的他你的她 2024-11-10 21:31:57

我通常做的是有一个单独的项目,其中包含您所引用的域逻辑类型(例如 GameType)的所有类和枚举,这些类和枚举在其他项目之间共享,并将其命名为:Xpto.Common

然后我在我的两个项目中引用该公共项目。这使得类和枚举可以重用并保持事物的组织性。

What I normally do is have a separate project that has all the classes and enumerations that have the kind of domain logic you are refering to (like GameType) that is shared across other projects and call it: Xpto.Common

I then reference that common project in both my projects. That makes the classes and enumerations reusable and keeps things organized.

差↓一点笑了 2024-11-10 21:31:57

显然,可重用的类必须放入单独的项目中。

Obviously, reusable classes must be put into a separate project.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文