0

我想知道如何将 DataContract 添加到我的服务中?我的意思是,我知道我必须创建一个类,将 [DATACONTRACT] 放在它之上,然后在每个成员之上添加 [DATAMEMBER],然后如何将 DataContract 添加到服务中(我已经有一个 [ServiceContract]和 [OperationContract] 在服务上运行)??

我现在正在以编程方式做所有事情(没有 .config 文件)。

一段代码显示了我如何启动和添加我的 OperationContract:(我使用的是 .NET 4.0)

服务端:

            using (ServiceHost host = new ServiceHost(typeof(StringReverser), new Uri[]{ new Uri("net.tcp://localhost") }))
            {

                   host.AddServiceEndpoint(typeof(IStringReverser), new NetTcpBinding(), "TCPReverse");

                   host.Open();
            }

客户端:

        Callbacks myCallbacks = new Callbacks();

        DuplexChannelFactory<IStringReverser> TCPFactory =
           new DuplexChannelFactory<IStringReverser>(
              myCallbacks,
              new NetTcpBinding());

        TCPFactory.Credentials.Windows.ClientCredential = new System.Net.NetworkCredential("username", "password");
        IStringReverser TCPProxy = TCPFactory.CreateChannel();

        Console.WriteLine("Client connected");

提前致谢

4

2 回答 2

0

您无需在任何地方“添加”数据合同。您只需将其用作服务合同或回调合同中任何操作的参数或返回值。数据契约将数据传输定义为服务请求或响应的一部分。如果服务的任何操作都没有使用数据合同,那么它显然与服务没有关系(如果是元数据,则不包括在内)。

唯一的例外是一些具有已知类型的高级场景,但在这个问题中可能不是这种情况。

于 2011-05-24T13:47:04.397 回答
0

DataContracts 是传递给服务操作的内容。通常,如果您将复杂类型作为参数,您将使用 DataContract 属性来装饰它们。

如果您仅将原始类型作为参数处理,则无需使用 DataContract 进行装饰。

于 2011-05-24T13:50:18.987 回答