/// <summary> /// Loads TypeInfo into a list. /// </summary> /// <param name="list">List</param> /// <param name="module">Module</param> public static void LoadTypeInfoInto(IList<CodeDomInfo> list, IOTAServiceProvider module) { if (module == null) { return; } IOTACodeDomProvider _CodeDomProvider = (IOTACodeDomProvider)module.GetService(typeof(IOTACodeDomProvider)); if (_CodeDomProvider == null) { LoggingService.Debug("null code dom provider"); return; } IOTACodeDomFile _CodeDomFile = _CodeDomProvider.CodeDomFile; if (_CodeDomFile == null) { LoggingService.Debug("null code dom file"); return; } CodeObject _CodeObject = _CodeDomFile.GetDom(); if (_CodeObject == null) { LoggingService.Debug("null code object"); return; } CodeCompileUnit _CodeCompileUnit = (CodeCompileUnit)_CodeObject; for (int i = 0; i < _CodeCompileUnit.Namespaces.Count; i++) { CodeNamespace _CodeNamespace = _CodeCompileUnit.Namespaces[i]; for (int j = 0; j < _CodeNamespace.Types.Count; j++) { CodeTypeDeclaration _CodeTypeDeclaration = _CodeNamespace.Types[j]; LoadTypeInfoInto(list, _CodeTypeDeclaration); } } }
/// <summary> /// Loads method info into a list. /// </summary> /// <param name="list">List</param> /// <param name="module">Module</param> public static void LoadMethodInfoInto(IList<CodeDomInfo> list, IOTAServiceProvider module) { if (module == null) { return; } IOTACodeDomProvider _CodeDomProvider = (IOTACodeDomProvider)module.GetService(typeof(IOTACodeDomProvider)); if (_CodeDomProvider == null) { LoggingService.Debug("null code dom provider"); return; } IOTACodeDomFile _CodeDomFile = _CodeDomProvider.CodeDomFile; if (_CodeDomFile == null) { LoggingService.Debug("null code dom file"); return; } CodeObject _CodeObject = _CodeDomFile.GetDom(); if (_CodeObject == null) { LoggingService.Debug("null code object"); return; } // unit object. CodeCompileUnit _CodeCompileUnit = (CodeCompileUnit)_CodeObject; for (int i = 0; i < _CodeCompileUnit.Namespaces.Count; i++) { // namespace object. CodeNamespace _CodeNamespace = _CodeCompileUnit.Namespaces[i]; for (int j = 0; j < _CodeNamespace.Types.Count; j++) { CodeTypeDeclaration _CodeTypeDeclaration = _CodeNamespace.Types[j]; if (_CodeTypeDeclaration.IsClass || _CodeTypeDeclaration.IsInterface) { // class, interface. string _ClassName = _CodeTypeDeclaration.Name; for (int k = 0; k < _CodeTypeDeclaration.Members.Count; k++) { CodeTypeMember _CodeTypeMember = _CodeTypeDeclaration.Members[k]; CodeMemberMethod method = _CodeTypeMember as CodeMemberMethod; if (method != null) { LoadMethodInto(list, method, _ClassName); } CodeTypeDeclaration type = _CodeTypeMember as CodeTypeDeclaration; if (type != null) { LoadTypeMemberInto(list, type); } CodeMemberProperty _CodeMemberProperty = _CodeTypeMember as CodeMemberProperty; if (_CodeMemberProperty == null) { LoggingService.Warn("something else is here. such as fields"); return; } if (_CodeMemberProperty.HasGet) { if (_CodeMemberProperty.GetStatements.Count > 0) { LoadPropertyInto(list, _CodeMemberProperty, _CodeMemberProperty.GetStatements[0], true, _ClassName); } else { LoadPropertyInto(list, _CodeMemberProperty, null, true, _ClassName); } } if (_CodeMemberProperty.HasSet) { if (_CodeMemberProperty.SetStatements.Count > 0) { LoadPropertyInto(list, _CodeMemberProperty, _CodeMemberProperty.SetStatements[0], false, _ClassName); } else { LoadPropertyInto(list, _CodeMemberProperty, null, false, _ClassName); } } } } } } }
/// <summary> /// Verifies designer if active. /// </summary> /// <param name="module">Module</param> /// <returns></returns> public static bool GetDesignerIsActive(IOTAServiceProvider module) { if (module != null) { IOTADotNetModule _DotNetModule = (IOTADotNetModule)module.GetService(typeof(IOTADotNetModule)); if (_DotNetModule != null) { return _DotNetModule.DesignerActive; } } return false; }
/// <summary> /// Loads EventInfo into a list. /// </summary> /// <param name="list">List</param> /// <param name="module">Module</param> public static void LoadEventInfoInto(IList<CodeDomInfo> list, IOTAServiceProvider module) { if (module == null) { return; } IOTACodeDomProvider _CodeDomProvider = (IOTACodeDomProvider)module.GetService(typeof(IOTACodeDomProvider)); if (_CodeDomProvider == null) { LoggingService.Debug("null code dom provider"); return; } IOTACodeDomFile _CodeDomFile = _CodeDomProvider.CodeDomFile; if (_CodeDomFile == null) { LoggingService.Debug("null code dom file"); return; } CodeObject _CodeObject = _CodeDomFile.GetDom(); if (_CodeObject == null) { LoggingService.Debug("null code object"); return; } CodeCompileUnit _CodeCompileUnit = (CodeCompileUnit)_CodeObject; for (int i = 0; i < _CodeCompileUnit.Namespaces.Count; i++) { CodeNamespace _CodeNamespace = _CodeCompileUnit.Namespaces[i]; for (int j = 0; j < _CodeNamespace.Types.Count; j++) { CodeTypeDeclaration _CodeTypeDeclaration = _CodeNamespace.Types[j]; if (_CodeTypeDeclaration.IsClass || _CodeTypeDeclaration.IsInterface) { string _ClassName = _CodeTypeDeclaration.Name; for (int k = 0; k < _CodeTypeDeclaration.Members.Count; k++) { CodeTypeMember _CodeTypeMember = _CodeTypeDeclaration.Members[k]; if (_CodeTypeMember is CodeMemberEvent) { LoadEventInfoInto(list, _CodeTypeMember, _ClassName); } else if (_CodeTypeMember is CodeTypeDeclaration) { LoadEventInfoInto(list, _CodeTypeMember); } } } } } }
/// <summary> /// Gets designer from module. /// </summary> /// <param name="module">Module</param> /// <returns>null if not.</returns> public static IDesignerHost GetDesignerForModule(IOTAServiceProvider module) { if (module != null) { IOTADotNetModule _DotNetModule = (IOTADotNetModule)module.GetService(typeof(IOTADotNetModule)); if (_DotNetModule != null) { IDesignerHost _Designer = _DotNetModule.DesignerHost; return _Designer; } } return null; }