예제 #1
0
        public void AddReferencesFromPersistenceFolder(string[] assemblyNames, bool doAsync = false)
        {
            RunMethod(
                delegate
            {
                lock (_contentRegistry)
                {
                    if (!Directory.Exists(GetPersistencePath()))
                    {
                        Directory.CreateDirectory(GetPersistencePath());
                    }

                    foreach (string item in assemblyNames)
                    {
                        DomPersistence persistence = _contentRegistry.ActivatePersistence(GetPersistencePath());

                        if (_cacheReferences.ContainsKey(item))
                        {
                            continue;
                        }

                        IProjectContent persistenceContent = persistence.LoadProjectContentByAssemblyName(item);
                        if (null != persistenceContent)
                        {
                            _cacheReferences[item] = persistenceContent;
                            _projectContent.ReferencedContents.Add(persistenceContent);
                            //_projectContent.AddReferencedContent(persistenceContent);
                        }
                    }
                }
            }, doAsync);
        }
예제 #2
0
        public bool AddReferenceFromPersistenceFolder(string assemblyName, bool doAsync = false)
        {
            if (!Directory.Exists(GetPersistencePath()))
            {
                Directory.CreateDirectory(GetPersistencePath());
            }

            bool result = false;

            RunMethod(
                delegate
            {
                lock (_contentRegistry)
                {
                    DomPersistence persistence = _contentRegistry.ActivatePersistence(GetPersistencePath());

                    IProjectContent persistenceContent = persistence.LoadProjectContentByAssemblyName(assemblyName);
                    if (null != persistenceContent)
                    {
                        _cacheReferences[assemblyName] = persistenceContent;
                        //_projectContent.AddReferencedContent(persistenceContent);
                        _projectContent.ReferencedContents.Add(persistenceContent);
                        result = true;
                    }
                }
            }, doAsync);
            return(result);
        }
예제 #3
0
        public void AddReferencesFromFile(string[] assemblyNames, string[] assemblyLocations, bool tryPersistence = true, bool doAsync = false)
        {
            if (!Directory.Exists(GetPersistencePath()))
            {
                Directory.CreateDirectory(GetPersistencePath());
            }

            RunMethod(
                delegate
            {
                lock (_contentRegistry)
                {
                    DomPersistence persistence = _contentRegistry.ActivatePersistence(GetPersistencePath());

                    for (int i = 0; i < assemblyNames.Length; i++)
                    {
                        string assemblyName     = assemblyNames[i];
                        string assemblyLocation = assemblyLocations[i];

                        if (_cacheReferences.ContainsKey(assemblyName))
                        {
                            continue;
                        }

                        if (true == tryPersistence)
                        {
                            IProjectContent persistenceContent = persistence.LoadProjectContentByAssemblyName(assemblyName);
                            if (null != persistenceContent)
                            {
                                _cacheReferences[assemblyName] = persistenceContent;
                                //_projectContent.AddReferencedContent(persistenceContent);
                                _projectContent.ReferencedContents.Add(persistenceContent);

                                continue;
                            }
                        }

                        IProjectContent result = _contentRegistry.GetProjectContentForReference(assemblyName, assemblyLocation);
                        if (null != result)
                        {
                            _cacheReferences[assemblyName] = result;
                            _projectContent.ReferencedContents.Add(result);
                            // _projectContent.AddReferencedContent(result);
                        }
                    }
                }
            }, doAsync);
        }
예제 #4
0
        public void AddWellKnownReferenceFromFile(string assemblyName, string assemblyLocation, bool tryPersistence = true, bool doAsync = false)
        {
            if (_cacheReferences.ContainsKey(assemblyName))
            {
                return;
            }

            if (!Directory.Exists(GetPersistencePath()))
            {
                Directory.CreateDirectory(GetPersistencePath());
            }

            RunMethod(
                delegate
            {
                lock (_contentRegistry)
                {
                    DomPersistence persistence = _contentRegistry.ActivatePersistence(GetPersistencePath());

                    if (true == tryPersistence)
                    {
                        IProjectContent persistenceContent = persistence.LoadProjectContentByAssemblyName(assemblyName);
                        if (null != persistenceContent)
                        {
                            _cacheReferences[assemblyName] = persistenceContent;
                            //_projectContent.AddReferencedContent(persistenceContent);
                            _projectContent.ReferencedContents.Add(persistenceContent);
                            return;
                        }
                    }

                    IProjectContent result = _contentRegistry.GetProjectContentForReference(assemblyName, assemblyLocation);
                    if (null != result)
                    {
                        _cacheReferences[assemblyName] = result;
                        _projectContent.ReferencedContents.Add(result);
                        //_projectContent.AddReferencedContent(result);
                    }
                }
            }, doAsync);
        }