12,162
社区成员
发帖
与我相关
我的任务
分享
[Serializable]
public class LockerUser {
private int userid = -1;
public int UserID {
get {
return userid;
}
}
private string username = "";
public string UserName {
get {
return username;
}
}
public LockerUser() {
}
public LockerUser(int userid, string username) {
this.userid = userid;
this.username = username;
}
}
[WebMethod]
public LockerUser TryLock(int userid, int orderformid) {
lock (locked) {
// 如果已经被其它用户锁定,则返回锁定该单的用户信息
LockerUser otherLockerUser = this.GetLockerInfo(orderformid);
if (otherLockerUser != null)
return otherLockerUser;
Entities.UserInfo.User user = Entities.UserInfo.User.GetByID(userid);
if (user == null || user.IsDisable)
return null;
List<int> formids = null;
locked.TryGetValue(userid, out formids);
if (formids == null) {
formids = new List<int>();
locked.Add(userid, formids);
}
if (!formids.Contains(orderformid))
formids.Add(orderformid);
return new LockerUser(user);
}
}
localhost.OrderFormLocker remote = new localhost.OrderFormLocker();
localhost.LockerUser user = remote.TryLock(1, 1);
Console.WriteLine(user.UserID); // 编译时提示 UserID 不是LockerUser 的成员
Console.WriteLine(user.UserName); // 编译时提示 UserName 不是 LockerUser 的成员
//WebService返回的对象必须是可序列化的,LZ可考虑使用泛型
[WebMethod]
public List<LockerUser> TryLock(int userid, int orderformid)
{
List<LockerUser> listUser = new List<lockerUser>;
lock (locked) {
// 如果已经被其它用户锁定,则返回锁定该单的用户信息
LockerUser otherLockerUser = this.GetLockerInfo(orderformid);
if (otherLockerUser != null)
{
listUser.Add(otherLockerUser);
return listUser;
}
Entities.UserInfo.User user = Entities.UserInfo.User.GetByID(userid);
if (user == null || user.IsDisable)
return null;
List<int> formids = null;
locked.TryGetValue(userid, out formids);
if (formids == null) {
formids = new List<int>();
locked.Add(userid, formids);
}
if (!formids.Contains(orderformid))
formids.Add(orderformid);
listUser.Add(new LockerUser(user));
return listUser;
}
}