问题的关键是:传递给WCF的自定义类型参数,已加特性描述,不知道何故丢失,基本类型的参数倒是不会丢失。
源码如下:
#Service
[ServiceContract(@namespace = "AffairsService")]
public interface IDbService
{
[OperationContract()] string GetDbPath(string id);
[OperationContract()] bool SuperLogin(IdInfo user);
}
public class DbService : IDbService
{
public string iGetPath(string id)
{
return string.Format("服务端Pathis: {0}客户端Pathis: {1}", My.Application.Info.DirectoryPath, id);
//调用/返回结果正确……’
}
string IDbService.GetDbPath(string id)
{
return iGetPath(id);
}
public bool iSuperLogin(IdInfo user)
{
//调试到这里,发现user已经丢失……
//…………
return Super.SuperLogin(user);
}
bool IDbService.SuperLogin(IdInfo user)
{
return iSuperLogin(user);
}
}
#Client
//IdInfo user
//这里 user内容还在
//开始Invoke……
AClient.SuperLogin(user)
#library
[Serializable()][DataContract()]public class IdInfo
{
[Serializable()][DataContract()]public class IdInfo
{
[DataMember()] public string id;
[DataMember()] public string name;
//……其他;
}
------解决方案--------------------
你需要把自定义类型写进库类并编译成dll,然后在wcf的服务端和客户端分别引用这个dll里类
------解决方案--------------------
没用过,类定义有问题?
public string id{get;set;}