Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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
.net 通过wcf创建对象时是否隐藏id属性?_.net_Wcf - Fatal编程技术网

.net 通过wcf创建对象时是否隐藏id属性?

.net 通过wcf创建对象时是否隐藏id属性?,.net,wcf,.net,Wcf,如果我有这样简单的add方法 public void AddUser(User user) { user.Id = Guid.NewGuid(); _userList.Add(user); } 和用户类类似 [DataContract] public class User { [DataMember] public Guid Id { get; set; } [DataMember] public string FirstNam

如果我有这样简单的add方法

public void AddUser(User user)
{
        user.Id = Guid.NewGuid();
        _userList.Add(user);
}
和用户类类似

[DataContract]
public class User
{

    [DataMember]
    public Guid Id { get; set; }
    [DataMember]
    public string FirstName { get; set; }
    [DataMember]
    public string LastName { get; set; }
    [DataMember]
    public DateTime DateCreated { get; set; }        
}
添加新对象时是否可以隐藏用户id。 我知道我可以通过参数化输入方法(将每个对象属性作为输入参数发送)实现这一点,但我认为这不适合wcf模型。如果我有很多属性呢?这只是一个简单的例子



希望我的意见对您或您的开发范围有意义

我认为应该在add方法中生成guid,而不是在对象属性中传递。我为该方法提供了判断生成的guid是否有效的可能性,您可以尝试使用新的guid,直到获得有效的guid

我不知道是否可以在这个工具中隐藏它,因为您已经将id标记为DataMember,这意味着您的属性变得可用

如果前面的建议对您有意义,那么在这个方法中,请忘记这个值。如果不是唯一的解决方案,我可以看到的是创建一个没有这个成员的新类


希望它能帮助您

希望我的意见对您或您的开发范围有意义

我认为应该在add方法中生成guid,而不是在对象属性中传递。我为该方法提供了判断生成的guid是否有效的可能性,您可以尝试使用新的guid,直到获得有效的guid

我不知道是否可以在这个工具中隐藏它,因为您已经将id标记为DataMember,这意味着您的属性变得可用

如果前面的建议对您有意义,那么在这个方法中,请忘记这个值。如果不是唯一的解决方案,我可以看到的是创建一个没有这个成员的新类


希望它能帮助您

如果您删除[DataMember]属性,那么GUID将无法用于WCF,因为它不会被序列化。
但是,如果用户对象绑定到后端数据库,那么在使用服务的任何一方的用户对象时,这会出现问题吗?您不是一直在创建新的用户对象吗?

如果删除[DataMember]属性,则GUID将不可用于WCF,因为它不会被序列化。 但是,如果用户对象绑定到后端数据库,那么在使用服务的任何一方的用户对象时,这会出现问题吗?你不是一直在创建新的用户对象吗

添加新对象时是否可以隐藏用户id。我知道我可以通过参数化输入方法(将每个对象属性作为输入参数发送)实现这一点,但我认为这不适合wcf模型

对于服务
Get
方法和
Add
方法,最好使用

用于
GetUser
方法的单独
UserResult
DTO:

public class UserResult
    public ID as Guid
    public FirstName as String
    public LastName as String
    public DateCreated as DateTime
end class

public class UserService
    public function GetUser(ID as Guid) as UserResult
end class
public class UserAddCommand
    public FirstName as String
    public LastName as String
end class

public class UserService
    public function AddUser(Command as UserAddCommand) as Response
end class
和一个单独的
UserAddCommand
DTO,用于
AddUser
方法:

public class UserResult
    public ID as Guid
    public FirstName as String
    public LastName as String
    public DateCreated as DateTime
end class

public class UserService
    public function GetUser(ID as Guid) as UserResult
end class
public class UserAddCommand
    public FirstName as String
    public LastName as String
end class

public class UserService
    public function AddUser(Command as UserAddCommand) as Response
end class
用户的
ID
甚至
DateCreated
都是在
AddUser
服务方法的服务端创建的

添加新对象时是否可以隐藏用户id。我知道我可以通过参数化输入方法(将每个对象属性作为输入参数发送)实现这一点,但我认为这不适合wcf模型

对于服务
Get
方法和
Add
方法,最好使用

用于
GetUser
方法的单独
UserResult
DTO:

public class UserResult
    public ID as Guid
    public FirstName as String
    public LastName as String
    public DateCreated as DateTime
end class

public class UserService
    public function GetUser(ID as Guid) as UserResult
end class
public class UserAddCommand
    public FirstName as String
    public LastName as String
end class

public class UserService
    public function AddUser(Command as UserAddCommand) as Response
end class
和一个单独的
UserAddCommand
DTO,用于
AddUser
方法:

public class UserResult
    public ID as Guid
    public FirstName as String
    public LastName as String
    public DateCreated as DateTime
end class

public class UserService
    public function GetUser(ID as Guid) as UserResult
end class
public class UserAddCommand
    public FirstName as String
    public LastName as String
end class

public class UserService
    public function AddUser(Command as UserAddCommand) as Response
end class

用户的
ID
甚至
DateCreated
都是在
AddUser
服务方法的服务端创建的。

我正在add方法中创建Guid。问题是它通过User.Id属性暴露给wcf客户端。Wcf客户端可以看到整个用户对象ad方法参数。您可以通过另一种方式来更改add方法,而不是传递一个类,在add方法上创建多个参数。只有当你必须传递很多参数时,问题才会出现!!,正如您的示例所示,makesme可以将一个以上的参数传递给此方法!解决问题!我正在add方法中创建Guid。问题是它通过User.Id属性暴露给wcf客户端。Wcf客户端可以看到整个用户对象ad方法参数。您可以通过另一种方式来更改add方法,而不是传递一个类,在add方法上创建多个参数。只有当你必须传递很多参数时,问题才会出现!!,正如您的示例所示,makesme可以将一个以上的参数传递给此方法!解决问题!你刚才回答了一个五年前的问题吗你能回答一个五年前的问题吗P