首页 文章

如何在Silverlight和.Net 4项目之间共享具有DataContract属性的实体C#类

提问于
浏览
1

我想构建一个由Silverlight应用程序使用的WCF REST服务,并且想要检查是否有一种很好的方法来共享web wcf项目和Silverlight项目之间的实体类(它们是两种不同的CLR类型) . 两个项目的代码基本相同:使用DataContract属性修饰的实体类和具有DataMember属性的属性 .

1 回答

  • 1

    我通常做的和工作得很好的是在一个项目(例如,web项目)中的数据 Contract 和SL项目我将它们添加为链接(右键单击项目,添加现有项目,选择文件,然后选择下拉并选择"Add as link",而不是单击"Add"按钮 . 这样,两个项目之间共享类型 .

    请注意,这甚至可以用于服务 Contract ,但由于SL不支持同步操作调用,我通常使用一些编译器指令来共享服务 Contract ,如下例所示 .

    [ServiceContract]
    public interface ITest
    {
    #if SILVERLIGHT
        [OperationContract(AsyncPattern = true)]
        IAsyncResult BeginAdd(int x, int y, AsyncCallback callback, object state);
        int EndAdd(IAsyncResult asyncResult);
    #else
        int Add(int x, int y);
    #endif
    }
    

相关问题