private void Generate(
            CreateViewOperation operation,
            MigrationCommandListBuilder builder)
        {
            try
            {
                var sqlHelper = Dependencies.SqlGenerationHelper;

                var assembly = AssemblyTool.GetAssemblyByName(operation.AssemblyName);

                string resourceName = assembly.GetManifestResourceNames()
                                      .Single(str => str.EndsWith(operation.ResourceSqlFileName));

                using Stream stream       = assembly.GetManifestResourceStream(resourceName);
                using StreamReader reader = new StreamReader(stream ?? throw new InvalidOperationException());
                string result = reader.ReadToEnd();

                _logger.LogDebug(result);

                builder.AppendLines(result)
                .AppendLine(sqlHelper.StatementTerminator)
                .EndCommand();
            }
            catch (Exception ex)
            {
                _logger.LogError("Generate " + ex.Message + " " + ex.StackTrace);
            }
        }
        private static void Init()
        {
            if (inspectorFieldParsers != null && inspectorTypeParsers != null)
            {
                return;
            }

            inspectorFieldParsers = new Dictionary <string, FieldInspectorParser>();
            List <Type> parserTypes = AssemblyTool.FindTypesInCurrentDomainWhereExtend <FieldInspectorParser>();

            foreach (var parserType in parserTypes)
            {
                var obj = ReflecTool.Instantiate(parserType);
                Debug.Log(parserType.ToString() + "   " + (obj == null));
                FieldInspectorParser fieldInspectorParser = obj as FieldInspectorParser;
                Debug.Log(parserType.ToString() + "   " + (fieldInspectorParser == null));
                inspectorFieldParsers.Add(fieldInspectorParser.Name, fieldInspectorParser);
            }

            inspectorTypeParsers = new Dictionary <Type, DefaultTypeInspector>();
            parserTypes          = AssemblyTool.FindTypesInCurrentDomainWhereExtend <DefaultTypeInspector>();
            foreach (var parserType in parserTypes)
            {
                DefaultTypeInspector defaultTypeInspector = ReflecTool.Instantiate(parserType) as DefaultTypeInspector;
                inspectorTypeParsers.Add(defaultTypeInspector.GetInspectorType(), defaultTypeInspector);
            }
        }
示例#3
0
        // ConfigureContainer is where you can register things directly
        // with Autofac. This runs after ConfigureServices so the things
        // here will override registrations made in ConfigureServices.
        // Don't build the container; that gets done for you by the factory.
        public void ConfigureContainer(ContainerBuilder builder)
        {
            try
            {
                //Log.
                builder.RegisterModule(new KSociety.Base.Srv.Host.Shared.Bindings.Log());

                //AutoMapper.
                builder.RegisterModule(new KSociety.Base.Srv.Host.Shared.Bindings.AutoMapper(AssemblyTool.GetAssembly()));

                //CommandHdlr.
                builder.RegisterModule(new CommandHdlr(AssemblyTool.GetAssembly()));

                //RabbitMQ.
                builder.RegisterModule(
                    new MessageBroker(BrokerName, ExchangeType, ExchangeDurable, ExchangeAutoDelete,
                                      MqHostName, MqUserName, MqPassword,
                                      DebugFlag, QueueDurable, QueueExclusive, QueueAutoDelete));

                //Transaction, don't move this line.
                builder.RegisterModule(new Bindings.Biz.Biz(DebugFlag));
            }
            catch (Exception ex)
            {
                Console.WriteLine(@"Autofac ConfigureContainer: " + ex.Message + " " + ex.StackTrace);
            }
        }
示例#4
0
    /// <summary>
    /// 数据绑定到Gameobject
    /// </summary>
    /// <param name="go"></param>
    /// <returns></returns>
    public ReferenceObject BindInstance(GameObject go)
    {
        ReferenceObject component = ReferenceRoot.AddReference(AssemblyTool.FindTypesInCurrentDomainByName(RefType), go, null);

        this.state     = SceneObjectState.binding;
        component.Data = this;
        return(component);
    }
示例#5
0
        protected virtual List <ItemDetailPartInspector <T> > CreatePartInspector()
        {
            List <ItemDetailPartInspector <T> > partInspectors = new List <ItemDetailPartInspector <T> >();
            List <Type> partInspectorTypeSet = AssemblyTool.FindTypesInCurrentDomainWhereExtend <ItemDetailPartInspector <T> >();

            foreach (var partInspector in partInspectorTypeSet)
            {
                ItemDetailPartInspector <T> itemDetailPartInspector = ReflecTool.Instantiate(partInspector) as ItemDetailPartInspector <T>;
                partInspectors.Add(itemDetailPartInspector);
            }
            return(partInspectors);
        }
示例#6
0
    static FieldDrawerUtil()
    {
        fieldDrawers = new Dictionary <Type, FieldDrawer>();
        List <Type> drawers = AssemblyTool.FindTypesInCurrentDomainWhereAttributeIs <CustomFieldDrawer>();

        foreach (var item in drawers)
        {
            if (item.IsSubclassOf(typeof(FieldDrawer)))
            {
                CustomFieldDrawer att = item.GetAttribute <CustomFieldDrawer>();
                fieldDrawers[att.m_type] = ReflecTool.Instantiate(item) as FieldDrawer;
            }
        }
    }
 private void Init()
 {
     if (inited == null)
     {
         List <Type> partInspectors = AssemblyTool.FindTypesInCurrentDomainWhereExtend <ItemDetailPartInspector <T> >();
         foreach (var partInspector in partInspectors)
         {
             ItemDetailPartInspector <T> itemDetailPartInspector = ReflecTool.Instantiate(partInspector) as ItemDetailPartInspector <T>;
             itemDetailPartInspectors.Add(itemDetailPartInspector);
         }
         itemDetailPartInspectors.Sort(
             (l, r) =>
             { return(l.Order - r.Order); });
         OnInit();
         inited = new object();
     }
 }
示例#8
0
        public void RefreshTreeData(SeanLibManager drawer)
        {
            var editorTypes = AssemblyTool.FindTypesInCurrentDomainWhereAttributeIs <CustomSeanLibEditor>();

            editorTypes.RemoveAll(e => ReflecTool.GetAttribute <CustomSeanLibEditor>(e).IsDoc != isdoc);
            editorTypes.Sort((l, r) =>
            {
                return(ReflecTool.GetAttribute <CustomSeanLibEditor>(l).order - ReflecTool.GetAttribute <CustomSeanLibEditor>(r).order);
            });
            editors = new List <SeanLibEditor>(editorTypes.Count);
            foreach (var item in editorTypes)
            {
                SeanLibEditor editor = ReflecTool.Instantiate(item) as SeanLibEditor;
                //editor.OnEnable(drawer);
                editors.Add(editor);
            }
            Reload();
        }
        private void Generate(
            CreateViewOperation operation,
            MigrationCommandListBuilder builder)
        {
            var sqlHelper = Dependencies.SqlGenerationHelper;
            //var stringMapping = Dependencies.TypeMappingSource.FindMapping(typeof(string));

            var assembly = AssemblyTool.GetAssemblyByName(operation.AssemblyName);
            //var assembly = Assembly.GetExecutingAssembly();
            //Console.WriteLine("Generate: " + assembly.FullName);
            string resourceName = assembly.GetManifestResourceNames().Single(str => str.EndsWith(operation.ResourceSqlFileName));

            //Assembly.GetManifestResouceNames

            using Stream stream       = assembly.GetManifestResourceStream(resourceName);
            using StreamReader reader = new StreamReader(stream ?? throw new InvalidOperationException());
            string result = reader.ReadToEnd();

            //.Split(new[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries);

            builder.AppendLines(result)
            .AppendLine(sqlHelper.StatementTerminator)
            .EndCommand();
        }
        public static IList ListEditor(string prefix, IList list, Type listType)
        {
            if (list == null)
            {
                list = ReflecTool.Instantiate(listType) as IList;
            }
            var argType = listType.IsArray ? listType.GetElementType() : listType.GetGenericArguments()[0];

            //register foldout
            if (!registeredEditorFoldouts.ContainsKey(list))
            {
                registeredEditorFoldouts[list] = false;
            }

            GUILayout.BeginVertical();

            var foldout = registeredEditorFoldouts[list];

            foldout = EditorGUILayout.Foldout(foldout, prefix);
            registeredEditorFoldouts[list] = foldout;

            if (!foldout)
            {
                GUILayout.EndVertical();
                return(list);
            }

            if (list.Equals(null))
            {
                GUILayout.Label("Null List");
                GUILayout.EndVertical();
                return(list);
            }
            GUILayout.BeginHorizontal();
            GUILayout.Space(20);
            GUILayout.BeginVertical();
            if (GUILayout.Button("Add Element"))
            {
                if (listType.IsArray)
                {
                    list = ResizeArray((Array)list, list.Count + 1);
                    registeredEditorFoldouts[list] = true;
                }
                else
                {
                    object newElement = null;
                    if (argType.IsValueType)
                    {
                        newElement = Activator.CreateInstance(argType);
                    }
                    if (!argType.IsInterface && !argType.IsAbstract && AssemblyTool.FindTypesInCurrentDomainWhereExtend(argType).Count == 1)
                    {
                        try
                        {
                            newElement = Activator.CreateInstance(argType);
                        }
                        catch (Exception)
                        {
                        }
                    }
                    list.Add(newElement);
                }
                GUI.FocusControl("");
            }

            //            EditorGUI.indentLevel++;

            for (var i = 0; i < list.Count; i++)
            {
                GUILayout.BeginVertical(GUITool.GetAreaGUIStyle(new Color(Color.grey.r, Color.grey.g, Color.grey.b, 0.3f)));
                GUILayout.BeginHorizontal();
                GUILayout.BeginVertical();
                ShowObject(list[i]);
                GUILayout.EndVertical();
                //                list[i] = GenericField("Element " + i, list[i], argType, null, null, false);
                if (GUILayout.Button("X", GUILayout.Width(18)))
                {
                    if (listType.IsArray)
                    {
                        list = ResizeArray((Array)list, list.Count - 1);
                        registeredEditorFoldouts[list] = true;
                    }
                    else
                    {
                        list.RemoveAt(i);
                    }
                    GUI.FocusControl("");
                }
                GUILayout.EndHorizontal();
                GUITool.Line(2);
                GUILayout.EndVertical();
            }
            GUILayout.EndVertical();
            GUILayout.EndHorizontal();
            //            EditorGUI.indentLevel--;
            Separator();

            GUILayout.EndVertical();
            return(list);
        }
示例#11
0
        // ConfigureContainer is where you can register things directly
        // with Autofac. This runs after ConfigureServices so the things
        // here will override registrations made in ConfigureServices.
        // Don't build the container; that gets done for you by the factory.
        public void ConfigureContainer(ContainerBuilder builder)
        {
            try
            {
                //Log.
                builder.RegisterModule(new Base.Srv.Host.Shared.Bindings.Log());

                //AutoMapper.
                builder.RegisterModule(new KSociety.Base.Srv.Host.Shared.Bindings.AutoMapper(AssemblyTool.GetAssembly()));

                //DatabaseConfiguration.
                builder.RegisterModule(new KSociety.Base.Srv.Host.Shared.Bindings.DatabaseConfiguration(DatabaseEngine.Sqlserver, MasterString, DebugFlag, MigrationsAssembly));

                //MediatR.
                builder.RegisterModule(new KSociety.Base.Srv.Host.Shared.Bindings.Mediatr());

                //Common.
                builder.RegisterModule(new Bindings.Common.Repository());

                builder.RegisterModule(new Bindings.Common.QueryListGridView());

                builder.RegisterModule(new Bindings.Common.QueryModel());

                builder.RegisterModule(new Bindings.Common.QueryViewListGridView());

                //S7
                builder.RegisterModule(new Bindings.S7.Repository());

                builder.RegisterModule(new Bindings.S7.QueryListGridView());

                builder.RegisterModule(new Bindings.S7.QueryModel());

                //Logix.
                builder.RegisterModule(new Bindings.Logix.Repository());

                //builder.RegisterModule(new Bindings.Logix.QueryListGridView());

                builder.RegisterModule(new Bindings.QueryViewJoinedListGridView());



                //UnitOfWork.
                builder.RegisterModule(new KSociety.Base.Srv.Host.Shared.Bindings.UnitOfWork <ComContext>());

                builder.RegisterModule(new KSociety.Base.Srv.Host.Shared.Bindings.DatabaseControl <ComContext>());

                //CommandHandler.
                builder.RegisterModule(new KSociety.Base.Srv.Host.Shared.Bindings.CommandHdlr(AssemblyTool.GetAssembly()));

                //DatabaseFactory
                builder.RegisterModule(new KSociety.Base.Srv.Host.Shared.Bindings.DatabaseFactory <ComContext>());

                //RabbitMQ.
                builder.RegisterModule(
                    new ComMessageBroker(
                        BrokerName, ExchangeType, ExchangeDurable, ExchangeAutoDelete,
                        MqHostName, MqUserName, MqPassword, DebugFlag, QueueDurable, QueueExclusive, QueueAutoDelete));

                //Transaction, don't move this line.
                builder.RegisterModule(new Bindings.Transaction(DebugFlag));
            }
            catch (Exception ex)
            {
                Console.WriteLine(@"Autofac ConfigureContainer: " + ex.Message + " " + ex.StackTrace);
            }
        }