Пример #1
0
 /// <summary>
 /// 当静态服务被释放时
 /// </summary>
 /// <param name="bindData">绑定数据</param>
 /// <param name="action">处理事件</param>
 /// <returns>服务绑定数据</returns>
 public static IBindData OnRelease(this IBindData bindData, Action action)
 {
     Guard.Requires <ArgumentNullException>(action != null);
     return(bindData.OnRelease((_, __) =>
     {
         action();
     }));
 }
Пример #2
0
 /// <summary>
 /// 当静态服务被释放时
 /// </summary>
 /// <param name="bindData">绑定数据</param>
 /// <param name="action">处理事件</param>
 /// <returns>服务绑定数据</returns>
 public static IBindData OnRelease(this IBindData bindData, Action <object> action)
 {
     Guard.Requires <ArgumentNullException>(action != null);
     return(bindData.OnRelease((_, instance) =>
     {
         action(instance);
     }));
 }
Пример #3
0
 /// <inheritdoc cref="IBindData.OnRelease"/>
 public static IBindData OnRelease(this IBindData bindData, Action closure)
 {
     Guard.Requires <ArgumentNullException>(closure != null);
     return(bindData.OnRelease((_, __) =>
     {
         closure();
     }));
 }
Пример #4
0
        /// <summary>
        /// 重新绑定
        /// </summary>
        /// <param name="newBinder">新的Binder</param>
        private static void Rebind(IBindData newBinder)
        {
            if (newBinder != null && binder != newBinder && newBinder.IsStatic)
            {
                newBinder.OnRelease(OnRelease);
            }

            binder = newBinder;
        }
Пример #5
0
 /// <summary>
 /// 当静态服务被释放时
 /// </summary>
 /// <param name="bindData">绑定数据</param>
 /// <param name="closure">处理事件</param>
 /// <returns>服务绑定数据</returns>
 public static IBindData OnRelease <T>(this IBindData bindData, Action <IBindData, T> closure)
 {
     Guard.Requires <ArgumentNullException>(closure != null);
     return(bindData.OnRelease((bind, instance) =>
     {
         if (instance is T)
         {
             closure(bind, (T)instance);
         }
     }));
 }