Song.ViewData/ExecuteMethod.cs

(开头部分) 18KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Song.ViewData.Attri;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace Song.ViewData
{
    /// <summary>
    /// 执行具体的方法
    /// </summary>
    public class ExecuteMethod
    {

        #region 单件模式
        private static readonly ExecuteMethod _instance = new ExecuteMethod();
        private ExecuteMethod() { }
        /// <summary>
        /// 返回实例
        /// </summary>
        /// <returns></returns>
        public static ExecuteMethod GetInstance()
        {
            return _instance;
        }
        #endregion

        #region 创建并缓存实例对象
        //存储对象的键值对,key为对象的类名称(全名),value为对象自身
        private Dictionary<string, object> _objects = new Dictionary<string, object>();
        /// <summary>
        /// 创建对象,如果存在,则直接返回;如果不存在,创建后返回
        /// </summary>
        /// <param name="letter"></param>
        /// <returns></returns>
        public static IViewAPI CreateInstance(Letter letter)
        {
            string assemblyName = "Song.ViewData";
            string classFullName = String.Format("{0}.Methods.{1}", assemblyName, letter.ClassName);
            IViewAPI obj = null;
            //由缓存中查找,是否存在
            ExecuteMethod curr = ExecuteMethod.GetInstance();
            foreach (KeyValuePair<string, object> kv in curr._objects)
            {
                if (classFullName.Trim().Equals(kv.Key, StringComparison.CurrentCultureIgnoreCase))
                {
                    obj = (IViewAPI)kv.Value;
                    break;
                }
            }
            if (obj != null) return obj;

            //如果之前未创建,则重新创建
            Type type = null;
            Assembly assembly = Assembly.Load(assemblyName);
            Type[] types = assembly.GetExportedTypes()
后面还有 383 行代码,解锁后查看完整代码

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

AI 解读

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

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