ServiceStack.ServiceStackHost.ExecTypedFilters C# (CSharp) Метод

ExecTypedFilters() публичный Метод

public ExecTypedFilters ( ITypedFilter>.Dictionary typedFilters, IRequest req, IResponse res, object dto ) : void
typedFilters ITypedFilter>.Dictionary
req IRequest
res IResponse
dto object
Результат void
        public virtual void ExecTypedFilters(Dictionary<Type, ITypedFilter> typedFilters,
            IRequest req, IResponse res, object dto)
        {
            if (typedFilters.Count == 0) return;

            ITypedFilter typedFilter;
            var dtoType = dto.GetType();
            typedFilters.TryGetValue(dtoType, out typedFilter);
            if (typedFilter != null)
            {
                typedFilter.Invoke(req, res, dto);
                if (res.IsClosed) return;
            }

            var dtoInterfaces = dtoType.GetTypeInterfaces();
            foreach (var dtoInterface in dtoInterfaces)
            {
                typedFilters.TryGetValue(dtoInterface, out typedFilter);
                if (typedFilter != null)
                {
                    typedFilter.Invoke(req, res, dto);
                    if (res.IsClosed) return;
                }
            }
        }