[ResourceConsumption(ResourceScope.Machine)] //For Create method call. But the path is not created in this method. public static MetadataArtifactLoader Create(string path, ExtensionCheck extensionCheck, string validExtension, ICollection <string> uriRegistry) { return(Create(path, extensionCheck, validExtension, uriRegistry, new DefaultAssemblyResolver())); }
[ResourceConsumption(ResourceScope.Machine)] //For Create method call. But the path is not created in this method. public static MetadataArtifactLoader Create(string path, ExtensionCheck extensionCheck, string validExtension, ICollection<string> uriRegistry) { return Create(path, extensionCheck, validExtension, uriRegistry, new DefaultAssemblyResolver()); }
internal static MetadataArtifactLoader CreateResourceLoader( string path, ExtensionCheck extensionCheck, string validExtension, ICollection <string> uriRegistry, MetadataArtifactAssemblyResolver resolver) { DebugCheck.NotNull(path); Debug.Assert(PathStartsWithResPrefix(path)); // if the supplied path ends with a separator, or contains only one // segment (i.e., the name of an assembly, or the wildcard character), // create a composite loader that can extract resources from one or // more assemblies // var createCompositeResLoader = false; string assemblyName = null; string resourceName = null; ParseResourcePath(path, out assemblyName, out resourceName); createCompositeResLoader = (assemblyName != null) && (resourceName == null || assemblyName.Trim() == wildcard); ValidateExtension(extensionCheck, validExtension, resourceName); if (createCompositeResLoader) { return(new MetadataArtifactLoaderCompositeResource(path, assemblyName, resourceName, uriRegistry, resolver)); } Debug.Assert(!string.IsNullOrEmpty(resourceName), "we should not get here is the resourceName is null"); var assembly = ResolveAssemblyName(assemblyName, resolver); return(new MetadataArtifactLoaderResource(assembly, resourceName, uriRegistry)); }
[ResourceConsumption(ResourceScope.Machine)] //For CheckArtifactExtension method call. But the path is not created in this method. internal static MetadataArtifactLoader Create( string path, ExtensionCheck extensionCheck, string validExtension, ICollection <string> uriRegistry, MetadataArtifactAssemblyResolver resolver) { DebugCheck.NotNull(path); DebugCheck.NotNull(resolver); // res:// -based artifacts // if (PathStartsWithResPrefix(path)) { return(MetadataArtifactLoaderCompositeResource.CreateResourceLoader( path, extensionCheck, validExtension, uriRegistry, resolver)); } // Files and Folders // var normalizedPath = NormalizeFilePaths(path); if (Directory.Exists(normalizedPath)) { return(new MetadataArtifactLoaderCompositeFile(normalizedPath, uriRegistry)); } else if (File.Exists(normalizedPath)) { switch (extensionCheck) { case ExtensionCheck.Specific: CheckArtifactExtension(normalizedPath, validExtension); break; case ExtensionCheck.All: if (!IsValidArtifact(normalizedPath)) { throw new MetadataException(Strings.InvalidMetadataPath); } break; } return(new MetadataArtifactLoaderFile(normalizedPath, uriRegistry)); } throw new MetadataException(Strings.InvalidMetadataPath); }
[ResourceConsumption(ResourceScope.Machine)] //For CheckArtifactExtension method call. But the path is not created in this method. internal static MetadataArtifactLoader Create( string path, ExtensionCheck extensionCheck, string validExtension, ICollection<string> uriRegistry, MetadataArtifactAssemblyResolver resolver) { DebugCheck.NotNull(path); DebugCheck.NotNull(resolver); // res:// -based artifacts // if (PathStartsWithResPrefix(path)) { return MetadataArtifactLoaderCompositeResource.CreateResourceLoader( path, extensionCheck, validExtension, uriRegistry, resolver); } // Files and Folders // var normalizedPath = NormalizeFilePaths(path); if (Directory.Exists(normalizedPath)) { return new MetadataArtifactLoaderCompositeFile(normalizedPath, uriRegistry); } else if (File.Exists(normalizedPath)) { switch (extensionCheck) { case ExtensionCheck.Specific: CheckArtifactExtension(normalizedPath, validExtension); break; case ExtensionCheck.All: if (!IsValidArtifact(normalizedPath)) { throw new MetadataException(Strings.InvalidMetadataPath); } break; } return new MetadataArtifactLoaderFile(normalizedPath, uriRegistry); } throw new MetadataException(Strings.InvalidMetadataPath); }
private static void ValidateExtension(ExtensionCheck extensionCheck, string validExtension, string resourceName) { if (resourceName == null) { return; } // the supplied path represents a single resource // switch (extensionCheck) { case ExtensionCheck.Specific: CheckArtifactExtension(resourceName, validExtension); break; case ExtensionCheck.All: if (!IsValidArtifact(resourceName)) { throw new MetadataException(Strings.InvalidMetadataPath); } break; } }
internal static MetadataArtifactLoader CreateResourceLoader( string path, ExtensionCheck extensionCheck, string validExtension, ICollection<string> uriRegistry, MetadataArtifactAssemblyResolver resolver) { Debug.Assert(path != null); Debug.Assert(PathStartsWithResPrefix(path)); // if the supplied path ends with a separator, or contains only one // segment (i.e., the name of an assembly, or the wildcard character), // create a composite loader that can extract resources from one or // more assemblies // var createCompositeResLoader = false; string assemblyName = null; string resourceName = null; ParseResourcePath(path, out assemblyName, out resourceName); createCompositeResLoader = (assemblyName != null) && (resourceName == null || assemblyName.Trim() == wildcard); ValidateExtension(extensionCheck, validExtension, resourceName); if (createCompositeResLoader) { return new MetadataArtifactLoaderCompositeResource(path, assemblyName, resourceName, uriRegistry, resolver); } Debug.Assert(!string.IsNullOrEmpty(resourceName), "we should not get here is the resourceName is null"); var assembly = ResolveAssemblyName(assemblyName, resolver); return new MetadataArtifactLoaderResource(assembly, resourceName, uriRegistry); }