コード例 #1
0
ファイル: MetadataInfo.cs プロジェクト: wzssga/MEFMetadata
        public static IMetadataInfo GetOrCreate(Assembly assembly)
        {
            lock (assemblyCatalogInfoToMetadataInfoMap)
            {
                MetadataInfo result;

                var assemblyCatalogInfo = Discovery.GetAssemblyCatalogInfoFromFile(assembly.Location);
                if (!assemblyCatalogInfoToMetadataInfoMap.TryGetValue(assemblyCatalogInfo, out result))
                {
                    result = new MetadataInfo(assemblyCatalogInfo, assembly);
                    assemblyCatalogInfoToMetadataInfoMap.Add(assemblyCatalogInfo, result);
                }

                return(result);
            }
        }
コード例 #2
0
ファイル: MetadataInfo.cs プロジェクト: wzssga/MEFMetadata
        public static IMetadataInfo GetOrCreateByAssemblyFullName(string assemblyFullName)
        {
            if (Discovery.IsKnownNonMefAssembly(assemblyFullName))
            {
                return(null);
            }

            lock (assemblyCatalogInfoToMetadataInfoMap)
            {
                MetadataInfo result;

                var assemblyCatalogInfo = Discovery.GetAssemblyCatalogInfoFromAssemblyName(assemblyFullName);
                if (!assemblyCatalogInfoToMetadataInfoMap.TryGetValue(assemblyCatalogInfo, out result))
                {
                    result = new MetadataInfo(assemblyCatalogInfo);
                    assemblyCatalogInfoToMetadataInfoMap.Add(assemblyCatalogInfo, result);
                }

                return(result);
            }
        }
コード例 #3
0
ファイル: MetadataInfo.cs プロジェクト: wzssga/MEFMetadata
        public static IMetadataInfo GetOrCreate(string assemblyFilePath)
        {
            lock (assemblyCatalogInfoToMetadataInfoMap)
            {
                MetadataInfo result;

                AssemblyResolver.AddPath(Path.GetFullPath(Path.GetDirectoryName(assemblyFilePath)));

                var assemblyCatalogInfo = Discovery.GetAssemblyCatalogInfoFromFile(assemblyFilePath);
                if (assemblyCatalogInfo == null)
                {
                    throw new FileNotFoundException(
                              string.Format("Could not resolve assembly {0} likely because the file wasn't found on disk.", assemblyFilePath));
                }

                if (!assemblyCatalogInfoToMetadataInfoMap.TryGetValue(assemblyCatalogInfo, out result))
                {
                    result = new MetadataInfo(assemblyCatalogInfo);
                    assemblyCatalogInfoToMetadataInfoMap.Add(assemblyCatalogInfo, result);
                }

                return(result);
            }
        }
コード例 #4
0
ファイル: MetadataInfo.cs プロジェクト: szKarlen/MEFMetadata
        public static IMetadataInfo GetOrCreate(Assembly assembly)
        {
            lock (assemblyCatalogInfoToMetadataInfoMap)
            {
                MetadataInfo result;

                var assemblyCatalogInfo = Discovery.GetAssemblyCatalogInfoFromFile(assembly.Location);
                if (!assemblyCatalogInfoToMetadataInfoMap.TryGetValue(assemblyCatalogInfo, out result))
                {
                    result = new MetadataInfo(assemblyCatalogInfo, assembly);
                    assemblyCatalogInfoToMetadataInfoMap.Add(assemblyCatalogInfo, result);
                }

                return result;
            }
        }
コード例 #5
0
ファイル: MetadataInfo.cs プロジェクト: szKarlen/MEFMetadata
        public static IMetadataInfo GetOrCreateByAssemblyFullName(string assemblyFullName)
        {
            if (Discovery.IsKnownNonMefAssembly(assemblyFullName))
            {
                return null;
            }

            lock (assemblyCatalogInfoToMetadataInfoMap)
            {
                MetadataInfo result;

                var assemblyCatalogInfo = Discovery.GetAssemblyCatalogInfoFromAssemblyName(assemblyFullName);
                if (!assemblyCatalogInfoToMetadataInfoMap.TryGetValue(assemblyCatalogInfo, out result))
                {
                    result = new MetadataInfo(assemblyCatalogInfo);
                    assemblyCatalogInfoToMetadataInfoMap.Add(assemblyCatalogInfo, result);
                }

                return result;
            }
        }
コード例 #6
0
ファイル: MetadataInfo.cs プロジェクト: szKarlen/MEFMetadata
        public static IMetadataInfo GetOrCreate(string assemblyFilePath)
        {
            lock (assemblyCatalogInfoToMetadataInfoMap)
            {
                MetadataInfo result;

                AssemblyResolver.AddPath(Path.GetFullPath(Path.GetDirectoryName(assemblyFilePath)));

                var assemblyCatalogInfo = Discovery.GetAssemblyCatalogInfoFromFile(assemblyFilePath);
                if (assemblyCatalogInfo == null)
                {
                    throw new FileNotFoundException(
                        string.Format("Could not resolve assembly {0} likely because the file wasn't found on disk.", assemblyFilePath));
                }

                if (!assemblyCatalogInfoToMetadataInfoMap.TryGetValue(assemblyCatalogInfo, out result))
                {
                    result = new MetadataInfo(assemblyCatalogInfo);
                    assemblyCatalogInfoToMetadataInfoMap.Add(assemblyCatalogInfo, result);
                }

                return result;
            }
        }
コード例 #7
0
        public static MetadataTypeCatalog Create(string assemblyFilePath, ICompositionElement definitionOrigin)
        {
            var metadataInfo = MetadataInfo.GetOrCreate(assemblyFilePath);

            return(new MetadataTypeCatalog(metadataInfo, definitionOrigin));
        }
コード例 #8
0
 public static IMetadataInfo GetOrCreateMetadataInfoByAssemblyFullName(string assemblyFullName)
 {
     return(MetadataInfo.GetOrCreateByAssemblyFullName(assemblyFullName));
 }
コード例 #9
0
 public static IMetadataInfo GetOrCreateMetadataInfo(Assembly assembly)
 {
     return(MetadataInfo.GetOrCreate(assembly));
 }