意想不到的类型' USN'当班级成员标记为[DataMember]时

时间:2017-07-12 11:55:18

标签: c++ wcf visual-studio-2008 wcf-binding

在我的C ++项目中,我有一个SOAP类:

namespace soapcon
{
    [DataContract]
    public ref class z
    {
    public:
        [DataMember]
        int USN;
    };
}

如果USN成员标记为[DataMember],则会收到编译错误syntax error : unexpected type 'USN'。但是,如果我注释掉[DataMember],那么一切都会编译而没有错误。

USN是WCF使用的类型,还是有其他原因导致此错误?

1 个答案:

答案 0 :(得分:0)

结果USNC:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winnt.h中定义为typedef LONGLONG USN

我发现了

typedef int USN;

命名行 命名空间,导致编译器报告报告原始typedef位置的错误。

似乎正在发生的事情是将USN声明为[DataMember]会导致编译器查找全局命名空间,并找到USN的typedef。