GMS.Framework.Contract/CallContext.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Remoting.Messaging;
using System.Web;
using Newtonsoft.Json;
namespace GMS.Framework.Contract
{
/// <summary>
/// 服务调用上下文,主要传输IP,操作人,认证等数据,可用于WCF传输用
/// </summary>
[Serializable]
public class WCFContext:Dictionary<string,object>
{
private const string CallContextKey = "__CallContext";
internal const string ContextHeaderLocalName = "__CallContext";
internal const string ContextHeaderNamespace = "urn:gms.com";
private void EnsureSerializable(object value)
{
if (value == null)
{
throw new ArgumentNullException("value");
}
if (!value.GetType().IsSerializable)
{
throw new ArgumentException(string.Format("The argument of the type \"{0}\" is not serializable!", value.GetType().FullName));
}
}
public new object this[string key]
{
get
{
return base[key];
}
set
{
this.EnsureSerializable(value);
base[key] = value;
}
}
public Operater Operater
{
get
{
return JsonConvert.DeserializeObject<Operater>(this["__Operater"].ToString());
}
set
{
this["__Operater"] = JsonConvert.SerializeObject(value);
}
}
public static WCFContext Current
{
get
后面还有 15 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
