Shared/Kernelx.ClientContexts/Contexts/RequestParameterObject.cs

(完整代码) 1KB

using Kernelx.Cmpts.ServiceModels;
using Kernelx.Cmpts.ServiceModels.Default;
using Kernelx.Extensions;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;

namespace Kernelx.Contexts
{
    public class RequestParameterObject<TServiceModelContext> : RequestParameterObjectBase
     where TServiceModelContext : DefaultServiceModelContextBase, new()
    {
        public RequestParameterObject(Dictionary<string, object> parameters, IList<string> filePaths = null)
            => Mounted(parameters ?? new Dictionary<string, object>(), filePaths);
         
        public RequestParameterObject(object parameters, IList<string> filePaths = null)
        {
            if (parameters != null)
            {
                var type=parameters.GetType();
                var props=type.GetProperties().Where(x=>x.CanRead).ToList();
                var dic = props.ToDictionary(kv => kv.Name, kv => kv.GetValue(parameters, kv.GetIndexValues()));
                Mounted(dic, filePaths);
            }
            else
                Mounted(new Dictionary<string, object>(), filePaths);
        }
         
        public RequestParameterObject(IList<string> filePaths = null)
                => Mounted(null, filePaths);

        /// <summary>
        /// 
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <typeparam name="TInput"></typeparam>
        /// <returns></returns>
        public TModel Startup<TModel>()
            where TModel : _ServiceModelBase<TServiceModelContext>, new()
        {
            var model = new TModel();
            return model;
        }

    }


}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。