Ejemplo n.º 1
0
 public static SingletonFileServiceBuilder TryAddEmbeddedFileSystem(
     this SingletonFileServiceBuilder builder,
     string @namespace,
     EmbeddedFileProvider embeddedFileProvider)
 {
     return(builder.TryAddFileSystem(@namespace, _ => new EmbeddedFileSystem(embeddedFileProvider)));
 }
Ejemplo n.º 2
0
 public static SingletonFileServiceBuilder TryAddFileSystem <TFileSystem>(this SingletonFileServiceBuilder builder, string @namespace)
     where TFileSystem : ISingletonFileSystem
 {
     return(builder.TryAddFileSystem(new FileSystemDescriptor(
                                         @namespace,
                                         provider => ActivatorUtilities.CreateInstance <TFileSystem>(provider))));
 }
Ejemplo n.º 3
0
 public static SingletonFileServiceBuilder TryAddFileSystem <TFileSystem>(
     this SingletonFileServiceBuilder builder,
     string @namespace,
     Func <IServiceProvider, TFileSystem> factory)
     where TFileSystem : ISingletonFileSystem
 {
     return(builder.TryAddFileSystem(new FileSystemDescriptor(
                                         @namespace,
                                         provider => factory(provider))));
 }
Ejemplo n.º 4
0
    public static SingletonFileServiceBuilder TryAddFileSystem(
        this SingletonFileServiceBuilder builder,
        FileSystemDescriptor fileSystemDescriptor)
    {
        foreach (var service in builder.ServiceCollection)
        {
            if (service.ServiceType == typeof(FileSystemDescriptor))
            {
                var exists = (FileSystemDescriptor)service.ImplementationInstance !;
                if (exists.NameSpace == fileSystemDescriptor.NameSpace)
                {
                    return(builder);
                }
            }
        }

        builder.ServiceCollection.Add(ServiceDescriptor.Singleton(fileSystemDescriptor));
        return(builder);
    }
Ejemplo n.º 5
0
 public static SingletonFileServiceBuilder TryAddMemoryFileSystem(this SingletonFileServiceBuilder builder, string @namespace)
 {
     return(builder.TryAddFileSystem <MemoryFileSystem>(@namespace));
 }