标签: datamember

自定义datacontract/datamember名称

我有以下问题.客户请求以下列格式返回数据的Web服务:

<status>
 <name1>Some name</name1>
 ...
</status>
Run Code Online (Sandbox Code Playgroud)

但是当发生错误时,他们希望得到以下消息:

<status>
 <error>Error description</error>
</status>
Run Code Online (Sandbox Code Playgroud)

我使用WCF创建了一个Web服务,为了满足要求,我定义了以下服务合同:


    [ServiceContract]
    public interface IPatronStatus
    {
        [OperationContract]
        [ServiceKnownType("GetKnownTypes", typeof(KnownTypesProvider))]
        [WebGet(UriTemplate = "/service/status?user={unilogin}")]
        StatusData GetPatronStatus(string unilogin);
    }

并且还定义了以下基类:


    [DataContract(Name="status")]
    public class StatusData
    {

    }

还有两个缺课:


public class PatronStatusData : StatusData
{
        private string _name;
        [DataMember(Name = "name1", Order = 0)]
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        } 
...
}

和:


public class UniLoginNotFoundError : StatusData 
    {
        public UniLoginNotFoundError()
        { }

        private …
Run Code Online (Sandbox Code Playgroud)

wcf datacontract datamember

1
推荐指数
1
解决办法
9368
查看次数

标准说,我们可以定义静态数据成员模板,如类模板和函数模板,但究竟如何?

C++ 03 Standard中的模板章节从以下内容开始:

一个模板定义了一类或函数.

template-declaration:  
     exportopt template < template-parameter-list > declaration
template-parameter-list:
     template-parameter
     template-parameter-list , template-parameter

声明模板声明

- 声明或定义函数或类,或

- 定义成员函数,成员类类模板的静态数据成员或嵌套在类模板中的类,或者

- 定义类或类模板的成员模板.

一个模板声明是一个声明.如果模板声明声明定义了函数,类或静态数据成员,那么它也是一个定义.

因此,根据我的理解,阅读粗体文本是除了类-templatefunction-template之外,我们还可以定义静态数据成员模板.但我从未见过静态数据成员模板.究竟是如何定义的?我尝试了以下内容,但GCC不接受它(ideone):

template<typename T> struct X{};

template<typename T>
struct A
{
   template<typename U> static X<U> data_member;
};
Run Code Online (Sandbox Code Playgroud)

所以我开始怀疑自己是否正确理解了报价.我到底错过了什么?或者我们如何定义静态数据成员模板呢?粗体文字是什么意思?

c++ static templates datamember

1
推荐指数
1
解决办法
1522
查看次数

未找到方法或数据成员编译问题

我有一个VB6项目,我没有创建,但我必须更新,当我去做exe我得到一个编译错误:找不到方法或数据成员,它在下面的代码中也指向"SCom1.FileReceive" .当我查看Main表单时,SCom1控件是PictureBox.

这段代码已经工作了5年,但我不知道为什么SCom1是一个图片框,或者为什么我收到错误,它是一个参考?我的SCom1看起来像MSComm功能?让我知道如果有人有任何想法,我只是不知道VB足以知道如何解决这个问题.谢谢

If SCom1.FileReceive = True Then   
WriteToLog (Now() & " FileReceive was true, now false")
    SCom1.FileReceive = False
End If
Run Code Online (Sandbox Code Playgroud)

vb6 datamember

1
推荐指数
1
解决办法
4082
查看次数

指向C ++中成员的指针如何在内部工作?

我想知道指向成员的指针如何在C ++中工作。

我查看了一些地方,发现它们存储了某种偏移量。并使用以下事实:成员在内存中的出现顺序与它们在类/结构定义中声明的顺序相同。但是...

#include <iostream>
#include<typeinfo>
using namespace std;
struct S
{
    S(int n): mi(n) {}
    int mi;
    int k;
    int f()  {return mi+k;}
};

int main()
{
    S s(7);
    int S::*pmi = &S::mi;
    int S::*lop = &S::k;
    int (S::*sf)() = &S::f;
    cout<<&S::mi<<endl<<&S::k<<endl<<&S::f<<endl<<pmi<<endl<<lop<<endl<<sf<<endl;
    cout<<typeid(lop).name()<<endl;
}
Run Code Online (Sandbox Code Playgroud)

我希望看到一些补偿。但是,第一行中cout <<的所有值都给出1作为输出。

我不明白,如果所有人都给1,关于偏移量的信息存储在哪里?

如果您可以解释实际情况,那将非常有帮助。

c++ pointers datamember

1
推荐指数
1
解决办法
109
查看次数

修改一个对象也会修改同一类的所有其他对象

自从我上一个 C++ 项目以来已经很久了,现在我陷入了一个非常简单的问题。我创建了两个对象,并且只想修改其中之一。现在我不明白为什么另一个对象也被修改了......

主类:

#include "testobject.h"
#include <iostream>

int main() {
    TestObject o1;
    TestObject o2;

    std::cout << "object1 before: " << o1.getI() << std::endl;
    std::cout << "object2 before: " << o2.getI() << std::endl;

    o1.setI(2);

    std::cout << "object1 after: " << o1.getI() << std::endl;
    std::cout << "object2 after: " << o2.getI() << std::endl;

}
Run Code Online (Sandbox Code Playgroud)

测试对象类:

#include "testobject.h"

int i;

int TestObject::getI() {
    return i;
}

void TestObject::setI(int j) {
    i = j;
}
Run Code Online (Sandbox Code Playgroud)

输出是:

object1 before: 0
object2 before: 0
object1 …
Run Code Online (Sandbox Code Playgroud)

c++ variables scope class datamember

-1
推荐指数
1
解决办法
691
查看次数

标签 统计

datamember ×5

c++ ×3

class ×1

datacontract ×1

pointers ×1

scope ×1

static ×1

templates ×1

variables ×1

vb6 ×1

wcf ×1