public override List <ExplorerItem> GetSchemaAndBuildAssembly(IConnectionInfo cxInfo, AssemblyName assemblyToBuild, ref string nameSpace, ref string typeName) { var settings = GetCxSettings(cxInfo); var schemaBuilderType = settings.SchemaBuilderType; if (schemaBuilderType == null) { return(null); } var builder = schemaBuilderType.GetInstance <ISchemaBuilder>(); if (builder == null) { return(null); } var paths = new List <string>() { Path.Combine(settings.WebRootPath, "bin") }; using (var context = new AssemblyLoadingContext(paths)) { return(builder.BuildAssembly(cxInfo, assemblyToBuild, ref nameSpace, ref typeName)); } }
/// <summary> /// This method reads default values for the following properties: /// * ContextDatabaseName /// * NamespacesToAdd /// * SearchResultType /// * AppConfigReaderType /// * SchemaBuilderType /// * DriverInitializerType /// </summary> /// <param name="cxInfo"></param> /// <param name="cxSettings"></param> public virtual void Read(IConnectionInfo cxInfo, ISitecoreConnectionSettings cxSettings) { if (cxInfo == null) { throw new ArgumentNullException("cxInfo"); } if (cxSettings == null) { throw new ArgumentNullException("cxSettings"); } var element = cxInfo.DriverData; if (element == null) { throw new NullReferenceException("DriverData on the IConnectionInfo object is null"); } cxSettings.ClientUrl = GetStringFromAttribute(element, KEY_CLIENT_URL); cxSettings.Username = GetStringFromAttribute(element, KEY_USERNAME); cxSettings.Password = GetStringFromAttribute(element, KEY_PASSWORD); cxSettings.WebRootPath = GetStringFromAttribute(element, KEY_WEB_ROOT_PATH); cxSettings.ContextDatabaseName = GetStringFromAttribute(element, KEY_CONTEXT_DB, DefaultValuesForCxSettings.Current.ContextDatabaseName); cxSettings.NamespacesToAdd = GetHashSetFromElement(element, KEY_NAMESPACES_TO_ADD, DefaultValuesForCxSettings.Current.NamespacesToAdd); var paths = GetHashSetFromElement(element, "paths"); if (paths == null) { paths = new HashSet <string>(); } var path = (string.IsNullOrEmpty(cxSettings.WebRootPath)) ? null : Path.Combine(cxSettings.WebRootPath, "bin"); if (!paths.Contains(path)) { paths.Add(path); } using (var context = new AssemblyLoadingContext(paths)) { // cxSettings.SearchResultType = GetSelectedTypeFromElement(element, KEY_SEARCH_RESULT_TYPE, DefaultValuesForCxSettings.Current.SearchResultItemType); cxSettings.SearchResultType.GetValidTypesDelegate = DefaultValuesForCxSettings.Current.GetValidTypesForSearchResultItem; // cxSettings.AppConfigReaderType = GetSelectedTypeFromElement(element, KEY_APP_CONFIG_READER_TYPE, DefaultValuesForCxSettings.Current.AppConfigReaderType); cxSettings.AppConfigReaderType.GetValidTypesDelegate = DefaultValuesForCxSettings.Current.GetValidTypesForAppConfigReaderType; // cxSettings.SchemaBuilderType = GetSelectedTypeFromElement(element, KEY_SCHEMA_BUILDER_TYPE, DefaultValuesForCxSettings.Current.SchemaBuilderType); cxSettings.SchemaBuilderType.GetValidTypesDelegate = DefaultValuesForCxSettings.Current.GetValidTypesForSchemaBuilderType; // cxSettings.DriverInitializerType = GetSelectedTypeFromElement(element, KEY_DRIVER_INITIALIZER_TYPE, DefaultValuesForCxSettings.Current.DriverInitializerType); cxSettings.DriverInitializerType.GetValidTypesDelegate = DefaultValuesForCxSettings.Current.GetValidTypesForDriverInitializerType; } }
public virtual IEnumerable <Type> GetValidTypesForSearchResultItem(Assembly assembly) { if (assembly == null) { return(null); } var paths = new List <string>(); using (var context = new AssemblyLoadingContext(paths)) { return(from t in assembly.GetTypes() where (t.IsPublic && !t.IsAbstract) && (t.GetConstructor(System.Type.EmptyTypes) != null) orderby t.AssemblyQualifiedName select t); } }
public virtual IEnumerable <Type> GetValidTypesForAppConfigReaderType(Assembly assembly) { if (assembly == null) { return(null); } var paths = new List <string>(); using (var context = new AssemblyLoadingContext(paths)) { return(from t in assembly.GetTypes() where ((t.IsPublic && !t.IsAbstract) && (t.GetConstructor(System.Type.EmptyTypes) != null)) && typeof(IAppConfigReader).IsAssignableFrom(t) orderby t.AssemblyQualifiedName select t); } }