Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Wcf将整数值设置为默认值_C#_Wcf - Fatal编程技术网

C# Wcf将整数值设置为默认值

C# Wcf将整数值设置为默认值,c#,wcf,C#,Wcf,这是我的班级: [DataContract] public class UserRepo { [DataMember] public int Id { get; set; } [DataMember] public string Name { get; set; } [DataMember] public string Surname { get; set; } [DataMember] public bool IsActi

这是我的班级:

 [DataContract]
public class UserRepo
{
    [DataMember]
    public int Id { get; set; }

    [DataMember]
    public string Name { get; set; }

    [DataMember]
    public string Surname { get; set; }

    [DataMember]
    public bool IsActive { get; set; }

    [DataMember]
    public string Picture { get; set; }

    [DataMember]
    public string Password { get; set; }

    [DataMember]
    public int RoleId { get; set; }

    [DataMember]
    public string Email { get; set; }

    [DataMember]
    public string Title { get; set; }

    [DataMember]
    public int LoginCount { get; set; }

    [DataMember]
    public string RoleName { get; set; }
}
下面是我的wcf函数:

    public ReponseResult UpdateUser(UserRepo _userRepo)
    {
        try
        {
            var userDb = UserDB.GetInstance();
            var result = userDb.UpdateUser(_userRepo);

            var respReponseResult = new ReponseResult();
            respReponseResult.Message = "Success";
            JavaScriptSerializer js = new JavaScriptSerializer();

            var returnObject = new ReturnObject()
            {
                ObjectName = "User Update",
                Result = new List<object>() { result, false }
            };


            string json = js.Serialize(returnObject);
            respReponseResult.Result = json;
            return respReponseResult;

        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            throw;
        }
    }
public reponseult UpdateUser(UserRepo\u UserRepo)
{
尝试
{
var userDb=userDb.GetInstance();
var result=userDb.UpdateUser(_userRepo);
var responseresult=新的responseresult();
responseResult.Message=“成功”;
JavaScriptSerializer js=新的JavaScriptSerializer();
var returnObject=新的returnObject()
{
ObjectName=“用户更新”,
结果=新列表(){Result,false}
};
字符串json=js.Serialize(returnObject);
respReponseResult.Result=json;
返回响应结果;
}
捕获(例外e)
{
控制台写入线(e);
投掷;
}
}

UserRepo对象的integer和bool props在发送到wcf后为0和false。我的错误在哪里?

在调用WCF函数之前,您在哪里初始化UserRepo类?您是否检查UpdateUser方法中的单个值?

我在项目中看到了这种情况。事实上,当代理从WSDL生成代码时,每个参数都将有一个自动生成的标志参数,例如,如果您的字段是
IsActive
,则自动生成的属性将是
IsActiveSpecified
,请参见下文

[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public System.bool IsActive{
    get {
        return this.isActiveField;
    }
    set {
        this.isActiveField= value;
        this.RaisePropertyChanged("IsActive");
    }
}

[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool IsActiveSpecified{
    get {
        return this.IsActiveSpecified;
    }
    set {
        this.IsActiveSpecified= value;
        this.RaisePropertyChanged("IsActiveSpecified");
    }
}
因此,您应该设置
IsActiveSpecified=true
,如果不设置,则传输的值为默认值

希望能解决你的问题