/// <summary> /// 指定された型のインスタンスとそれに対する透過的なプロキシを生成します。 /// </summary> /// <param name="serverType">生成する型です。</param> /// <returns>生成した型のインスタンスの透過的なプロキシを返します。</returns> public override MarshalByRefObject CreateInstance(Type serverType) { _obj_catch = _obj_catch ?? Activator.CreateInstance(_proxy_type) as IAspectBehavior; var proxy = new AspectProxy( base.CreateInstance(serverType), serverType, _obj_catch); return(proxy.GetTransparentProxy() as MarshalByRefObject); }
public override MarshalByRefObject CreateInstance(Type serverType) { if (_obj_catch == null) { _obj_catch = ((IAspectBehavior)(Activator.CreateInstance(_proxy_type, serverType))); } MarshalByRefObject target = base.CreateInstance(serverType); RealProxy rp = new AspectProxy(target, serverType, _obj_catch); return(rp.GetTransparentProxy() as MarshalByRefObject); }
/// <summary> /// 型'<see cref="TakymLib.AOP.AspectProxy"/>'の /// 新しいインスタンスを生成します。 /// </summary> /// <param name="target">対象のインスタンスです。</param> /// <param name="serverType">対象の型です。</param> /// <param name="behavior">実行する動作です。</param> public AspectProxy(MarshalByRefObject target, Type serverType, IAspectBehavior behavior) : base(serverType) { _target = target; _serverType = serverType; _behavior = behavior; }
public AspectProxy(MarshalByRefObject target, Type t, IAspectBehavior behavior) : base(t) { _target = target; _behavior = behavior; }