我写了这段代码:
界面:
public interface IService1
{
[OperationContract]
string Welcome(string fullName);
[OperationContract]
string Goodbye();
[OperationContract]
string GetSessionID();
[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);
}
服务:
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
public class Service1 : IService1
{
private string UserFullName { get; set; }
public string GetSessionID()
{
var sessionId = OperationContext.Current.SessionId;
return sessionId.ToString();
}
public string Welcome(string fullName)
{
UserFullName = fullName ?? "Guest"; return string.Format("Welcome back, {0}!", UserFullName);
}
public string Goodbye()
{
return string.Format("Come back soon, {0}!", UserFullName ?? "Guest");
}
public CompositeType GetDataUsingDataContract(CompositeType composite)
{
if (composite == null)
{
throw new ArgumentNullException("composite");
}
if (composite.BoolValue)
{
composite.StringValue += "Suffix";
}
return composite;
}
}
网络配置:
为什么 UserFullName 总是为空?