Esempio n. 1
0
        /// <summary>
        /// 初始化路由(出现重复路由地址会抛异常)
        /// </summary>
        /// <param name="ounit">方法单元</param>
        /// <returns>Task</returns>
        public Task AddOrThrow(OUnit ounit)
        {
            var ounits = InMemoryStoragebox.ForNewOrExisted().UnitStoreRouterMapper;

            if (ounits.ContainsKey(ounit.RequestPath))
            {
                throw new Exception($"存在相同的路径!");
            }
            ounits[ounit.RequestPath] = ounit;
            return(Task.FromResult(0));
        }
Esempio n. 2
0
        /// <summary>
        /// 回收
        /// </summary>
        /// <param name="ounit">方法单元</param>
        /// <param name="instance">方法所在类型的实例</param>
        /// <returns>Task</returns>
        public Task Recycle(OUnit ounit, object instance)
        {
            var oapimethods = InMemoryStoragebox.ForNewOrExisted().OAPIMethodsStoreTypeMapper;

            if (!oapimethods.ContainsKey(ounit.TypeofInstance))
            {
                oapimethods[ounit.TypeofInstance] = new Stack <OAPIMethodsBase>();
            }
            var typeofinstance = (OAPIMethodsBase)instance;

            typeofinstance.SetHttpContext = null;
            oapimethods[ounit.TypeofInstance].Push(typeofinstance);
            return(Task.FromResult(0));
        }