C# 如何制作C++/是否将CLI ref类指定给WCF的数据成员?

C# 如何制作C++/是否将CLI ref类指定给WCF的数据成员?,c#,wcf,c++-cli,C#,Wcf,C++ Cli,我正在尝试将我的c#应用程序转换为WCF服务 在c#应用程序中,有一些c++/CLI类 我需要通过WCF将该类作为返回值发送给客户端 我可以为c++/CLI ref类使用[DataContract]吗 下面是示例代码 // This is C++/CLI Class using namespace System; using namespace System::Runtime::InteropServices; namespace CLIClass { class TestCla

我正在尝试将我的c#应用程序转换为WCF服务

在c#应用程序中,有一些c++/CLI类

我需要通过WCF将该类作为返回值发送给客户端

我可以为c++/CLI ref类使用[DataContract]吗

下面是示例代码

// This is C++/CLI Class
using namespace System;
using namespace System::Runtime::InteropServices;

namespace CLIClass
{   
    class TestClass
    {
    public:
        int index;
        int test;
    };
}


您可以像添加任何其他属性一样添加
[DataContract]
属性

在您的例子中,问题来自这样一个事实:您没有声明
ref类(托管类),而是声明
类(本机类)。只需使用
ref class
即可编写:

namespace CLIClass
{  
    [System::Runtime::Serialization::DataContract]
    ref class TestClass
    {
    public:
        [System::Runtime::Serialization::DataMember] property int index;
        [System::Runtime::Serialization::DataMember] property int test;
    };
}
(并避免在头文件中使用命名空间

您需要添加对System.Runtime.Serialization程序集的引用,您可以通过项目属性或通过添加以下行来完成此操作:

#using <System.Runtime.Serialization.dll>
#使用
#using <System.Runtime.Serialization.dll>