diff --git a/src/AbpDesk/AbpDesk.MongoBlog/AbpDesk/Blogging/AbpDeskMongoBlogModule.cs b/src/AbpDesk/AbpDesk.MongoBlog/AbpDesk/Blogging/AbpDeskMongoBlogModule.cs index a6ef043fa5..5154184d51 100644 --- a/src/AbpDesk/AbpDesk.MongoBlog/AbpDesk/Blogging/AbpDeskMongoBlogModule.cs +++ b/src/AbpDesk/AbpDesk.MongoBlog/AbpDesk/Blogging/AbpDeskMongoBlogModule.cs @@ -9,7 +9,6 @@ using Volo.Abp.Modularity; using Volo.Abp.MongoDB; using Volo.Abp.Uow; using Volo.Abp.VirtualFileSystem; -using Volo.Abp.VirtualFileSystem.Embedded; namespace AbpDesk.Blogging { @@ -26,12 +25,7 @@ namespace AbpDesk.Blogging services.Configure(options => { - options.FileSets.Add( - new EmbeddedFileSet( - GetType().Assembly, - "" //TODO: This is not tested yet! - ) - ); + options.FileSets.AddEmbedded(); //TODO: Test empty base namespace! }); services.AddAssemblyOf(); diff --git a/src/AbpDesk/AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs b/src/AbpDesk/AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs index 2c1800f94d..1a219bf861 100644 --- a/src/AbpDesk/AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs +++ b/src/AbpDesk/AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Globalization; +using System.IO; using AbpDesk.EntityFrameworkCore; using AbpDesk.Web.Mvc.Navigation; using Microsoft.AspNetCore.Builder; @@ -21,6 +22,7 @@ using Volo.Abp.Identity.EntityFrameworkCore; using Volo.Abp.Identity.Web; using Volo.Abp.Modularity; using Volo.Abp.Ui.Navigation; +using Volo.Abp.VirtualFileSystem; namespace AbpDesk.Web.Mvc { @@ -73,6 +75,20 @@ namespace AbpDesk.Web.Mvc { options.ConventionalControllers.Create(typeof(AbpDeskApplicationModule).Assembly); }); + + var env = services.GetSingletonInstance(); //TODO: Find a better way! + + + if (env.IsDevelopment()) + { + services.Configure(options => + { + options.FileSets.ReplaceEmbeddedByPyhsical(Path.Combine(env.ContentRootPath, "..\\..\\Volo.Abp.AspNetCore.Mvc.UI")); + options.FileSets.ReplaceEmbeddedByPyhsical(Path.Combine(env.ContentRootPath, "..\\..\\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap")); + options.FileSets.ReplaceEmbeddedByPyhsical(Path.Combine(env.ContentRootPath, "..\\..\\Volo.Abp.Account.Web")); + options.FileSets.ReplaceEmbeddedByPyhsical(Path.Combine(env.ContentRootPath, "..\\..\\Volo.Abp.Identity.Web")); + }); + } } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll b/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll index c867134e44..5570b82fea 100644 Binary files a/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll and b/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll differ diff --git a/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs b/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs index 304699a4e0..5f5b59d58c 100644 --- a/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs +++ b/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs @@ -1,10 +1,8 @@ -using System.Reflection; -using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; using Volo.Abp.Identity; using Volo.Abp.Modularity; using Volo.Abp.VirtualFileSystem; -using Volo.Abp.VirtualFileSystem.Embedded; namespace Volo.Abp.Account.Web { @@ -19,12 +17,7 @@ namespace Volo.Abp.Account.Web services.Configure(options => { - options.FileSets.Add( - new EmbeddedFileSet( - GetType().Assembly, - "Volo.Abp.Account.Web" - ) - ); + options.FileSets.AddEmbedded("Volo.Abp.Account.Web"); }); } } diff --git a/src/Volo.Abp.AspNetCore.EmbeddedFiles/Microsoft/AspNetCore/Builder/VirtualFileSystemApplicationBuilderExtensions.cs b/src/Volo.Abp.AspNetCore.EmbeddedFiles/Microsoft/AspNetCore/Builder/VirtualFileSystemApplicationBuilderExtensions.cs index b5b2bc603e..c0a3881cee 100644 --- a/src/Volo.Abp.AspNetCore.EmbeddedFiles/Microsoft/AspNetCore/Builder/VirtualFileSystemApplicationBuilderExtensions.cs +++ b/src/Volo.Abp.AspNetCore.EmbeddedFiles/Microsoft/AspNetCore/Builder/VirtualFileSystemApplicationBuilderExtensions.cs @@ -1,4 +1,9 @@ -using Volo.Abp.AspNetCore.VirtualFileSystem; +using System.Linq; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.FileProviders; +using Microsoft.Extensions.Options; +using Volo.Abp.AspNetCore.VirtualFileSystem; +using Volo.Abp.VirtualFileSystem; namespace Microsoft.AspNetCore.Builder { @@ -6,13 +11,29 @@ namespace Microsoft.AspNetCore.Builder { public static void UseVirtualFiles(this IApplicationBuilder app) { + var options = app.ApplicationServices.GetRequiredService>().Value; + + IFileProvider fileProvider = new AspNetCoreVirtualFileProvider( + app.ApplicationServices, + "/wwwroot" + ); + + if (options.FileSets.PhysicalPaths.Any()) + { + var fileProviders = options.FileSets.PhysicalPaths + .Select(p => new PhysicalFileProvider(p)) + .Cast() + .ToList(); + + fileProviders.Add(fileProvider); + + fileProvider = new CompositeFileProvider(fileProviders); + } + app.UseStaticFiles( new StaticFileOptions { - FileProvider = new AspNetCoreVirtualFileProvider( - app.ApplicationServices, - "/wwwroot" - ) + FileProvider = fileProvider } ); } diff --git a/src/Volo.Abp.AspNetCore.EmbeddedFiles/Volo.Abp.AspNetCore.EmbeddedFiles.csproj b/src/Volo.Abp.AspNetCore.EmbeddedFiles/Volo.Abp.AspNetCore.EmbeddedFiles.csproj index b678cdafba..b2721a3491 100644 --- a/src/Volo.Abp.AspNetCore.EmbeddedFiles/Volo.Abp.AspNetCore.EmbeddedFiles.csproj +++ b/src/Volo.Abp.AspNetCore.EmbeddedFiles/Volo.Abp.AspNetCore.EmbeddedFiles.csproj @@ -19,6 +19,8 @@ + + diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/AbpAspNetCoreMvcUiBootstrapModule.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/AbpAspNetCoreMvcUiBootstrapModule.cs index 6f19cb75ef..e88ba05457 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/AbpAspNetCoreMvcUiBootstrapModule.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/AbpAspNetCoreMvcUiBootstrapModule.cs @@ -1,10 +1,8 @@ using System; -using System.Reflection; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.Bundling; using Volo.Abp.Modularity; using Volo.Abp.VirtualFileSystem; -using Volo.Abp.VirtualFileSystem.Embedded; namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap { @@ -17,12 +15,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap services.Configure(options => { - options.FileSets.Add( - new EmbeddedFileSet( - GetType().Assembly, - "Volo.Abp.AspNetCore.Mvc.UI.Bootstrap" - ) - ); + options.FileSets.AddEmbedded("Volo.Abp.AspNetCore.Mvc.UI.Bootstrap"); }); services.Configure(options => diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/AbpAspNetCoreMvcUiModule.cs b/src/Volo.Abp.AspNetCore.Mvc.UI/AbpAspNetCoreMvcUiModule.cs index b1ee0bb864..c7d22cabde 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI/AbpAspNetCoreMvcUiModule.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/AbpAspNetCoreMvcUiModule.cs @@ -1,10 +1,8 @@ using System; -using System.Reflection; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.Bundling; using Volo.Abp.Modularity; using Volo.Abp.VirtualFileSystem; -using Volo.Abp.VirtualFileSystem.Embedded; namespace Volo.Abp.AspNetCore.Mvc { @@ -17,12 +15,7 @@ namespace Volo.Abp.AspNetCore.Mvc services.Configure(options => { - options.FileSets.Add( - new EmbeddedFileSet( - GetType().Assembly, - "Volo.Abp.AspNetCore.Mvc" - ) - ); + options.FileSets.AddEmbedded("Volo.Abp.AspNetCore.Mvc"); }); services.Configure(options => diff --git a/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs b/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs index db0b9123a9..3dcd956bf6 100644 --- a/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs +++ b/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs @@ -17,7 +17,7 @@ using Microsoft.AspNetCore.Mvc.ViewComponents; using Microsoft.Extensions.DependencyInjection.Extensions; using Volo.Abp.AspNetCore.Mvc.Conventions; using Volo.Abp.AspNetCore.Mvc.DependencyInjection; -using Volo.Abp.AspNetCore.Mvc.VirtualFileSystem; +using Volo.Abp.AspNetCore.VirtualFileSystem; using Volo.Abp.Http; using Volo.Abp.Http.Modeling; @@ -40,7 +40,7 @@ namespace Volo.Abp.AspNetCore.Mvc new ConfigureOptions(options => { options.FileProviders.Add( - new AspNetCoreVirtualViewFileProvider( + new AspNetCoreVirtualFileProvider( services.GetSingletonInstance>() ) ); diff --git a/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/VirtualFileSystem/AspNetCoreVirtualViewFileProvider.cs b/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/VirtualFileSystem/AspNetCoreVirtualViewFileProvider.cs deleted file mode 100644 index 218d9a510a..0000000000 --- a/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/VirtualFileSystem/AspNetCoreVirtualViewFileProvider.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using Volo.Abp.AspNetCore.VirtualFileSystem; -using Volo.Abp.DependencyInjection; - -namespace Volo.Abp.AspNetCore.Mvc.VirtualFileSystem -{ - public class AspNetCoreVirtualViewFileProvider : AspNetCoreVirtualFileProvider - { - public AspNetCoreVirtualViewFileProvider(IObjectAccessor serviceProviderAccessor) - : base(serviceProviderAccessor) - { - } - } -} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj b/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj index ecd09c41c1..db3baa62af 100644 --- a/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj +++ b/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj @@ -18,6 +18,8 @@ + + diff --git a/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AspNetCoreVirtualFileOptions.cs b/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AspNetCoreVirtualFileOptions.cs deleted file mode 100644 index 57395163eb..0000000000 --- a/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AspNetCoreVirtualFileOptions.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Collections.Generic; - -namespace Volo.Abp.AspNetCore.VirtualFileSystem -{ - internal class AspNetCoreVirtualFileOptions //TODO: and use this! - { - public HashSet IgnoredFileExtensions { get; } - - public AspNetCoreVirtualFileOptions() - { - IgnoredFileExtensions = new HashSet - { - ".cshtml", - ".config" - }; - } - } -} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AspNetCoreVirtualFileProvider.cs b/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AspNetCoreVirtualFileProvider.cs index a00fb58f69..d135771623 100644 --- a/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AspNetCoreVirtualFileProvider.cs +++ b/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AspNetCoreVirtualFileProvider.cs @@ -1,5 +1,5 @@ using System; -using System.IO; +using System.Linq; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.FileProviders; using Microsoft.Extensions.Options; @@ -11,8 +11,7 @@ namespace Volo.Abp.AspNetCore.VirtualFileSystem { public class AspNetCoreVirtualFileProvider : IFileProvider { - private readonly Lazy _virtualFileProvider; - private readonly Lazy _options; + private readonly Lazy _fileProvider; private readonly IObjectAccessor _serviceProviderAccessor; private readonly string _contentPath; @@ -26,13 +25,27 @@ namespace Volo.Abp.AspNetCore.VirtualFileSystem { _serviceProviderAccessor = serviceProviderAccessor; - _virtualFileProvider = new Lazy( - () => serviceProviderAccessor.Value.GetRequiredService(), - true - ); + _fileProvider = new Lazy( + () => + { + var options = serviceProviderAccessor.Value.GetRequiredService>().Value; + + IFileProvider fileProvider = serviceProviderAccessor.Value.GetRequiredService(); + + if (options.FileSets.PhysicalPaths.Any()) + { + var fileProviders = options.FileSets.PhysicalPaths + .Select(p => new PhysicalFileProvider(p)) + .Cast() + .ToList(); - _options = new Lazy( - () => serviceProviderAccessor.Value.GetRequiredService>().Value, + fileProviders.Add(fileProvider); + + fileProvider = new CompositeFileProvider(fileProviders); + } + + return fileProvider; + }, true ); } @@ -44,14 +57,12 @@ namespace Volo.Abp.AspNetCore.VirtualFileSystem subpath = _contentPath + subpath; } - //TODO: Ignore files in _options.Value.IgnoredFileExtensions - if (!IsInitialized()) { return new NotFoundFileInfo(subpath); } - return _virtualFileProvider.Value.GetFileInfo(subpath); + return _fileProvider.Value.GetFileInfo(subpath); } public IDirectoryContents GetDirectoryContents(string subpath) @@ -61,14 +72,12 @@ namespace Volo.Abp.AspNetCore.VirtualFileSystem subpath = _contentPath + subpath; } - //TODO: Ignore files in _options.Value.IgnoredFileExtensions - if (!IsInitialized()) { return new NotFoundDirectoryContents(); } - return _virtualFileProvider.Value.GetDirectoryContents(subpath); + return _fileProvider.Value.GetDirectoryContents(subpath); } public IChangeToken Watch(string filter) @@ -78,7 +87,7 @@ namespace Volo.Abp.AspNetCore.VirtualFileSystem return NullChangeToken.Singleton; } - return _virtualFileProvider.Value.Watch(filter); + return _fileProvider.Value.Watch(filter); } private bool IsInitialized() diff --git a/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs b/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs index 100abda25b..7397e36533 100644 --- a/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs +++ b/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs @@ -6,7 +6,6 @@ using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.Ui.Navigation; using Volo.Abp.VirtualFileSystem; -using Volo.Abp.VirtualFileSystem.Embedded; namespace Volo.Abp.Identity.Web { @@ -25,12 +24,7 @@ namespace Volo.Abp.Identity.Web services.Configure(options => { - options.FileSets.Add( - new EmbeddedFileSet( - GetType().Assembly, - "Volo.Abp.Identity.Web" - ) - ); + options.FileSets.AddEmbedded("Volo.Abp.Identity.Web"); }); services.Configure(options => diff --git a/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj b/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj index 8c77bb369e..0833d1b3dd 100644 --- a/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj +++ b/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedFileSet.cs b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedFileSet.cs index 859c8821fd..c9bd9f179e 100644 --- a/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedFileSet.cs +++ b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedFileSet.cs @@ -16,12 +16,16 @@ namespace Volo.Abp.VirtualFileSystem.Embedded [CanBeNull] public string BaseNamespace { get; } - public EmbeddedFileSet([NotNull] Assembly assembly, string baseNamespace) + [CanBeNull] + public string BaseFolderInProject { get; } + + public EmbeddedFileSet([NotNull] Assembly assembly, [CanBeNull] string baseNamespace, [CanBeNull] string baseFolderInProject = null) { Check.NotNull(assembly, nameof(assembly)); Assembly = assembly; BaseNamespace = baseNamespace; + BaseFolderInProject = baseFolderInProject; } public void AddFiles(Dictionary files) @@ -52,7 +56,7 @@ namespace Volo.Abp.VirtualFileSystem.Embedded } } - private void AddDirectoriesRecursively(Dictionary files, string directoryPath, DateTimeOffset lastModificationTime) + private static void AddDirectoriesRecursively(Dictionary files, string directoryPath, DateTimeOffset lastModificationTime) { if (files.ContainsKey(directoryPath)) { diff --git a/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/IVirtualFileProvider.cs b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/IVirtualFileProvider.cs index a8f52bbf10..4bffc5685f 100644 --- a/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/IVirtualFileProvider.cs +++ b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/IVirtualFileProvider.cs @@ -4,5 +4,6 @@ namespace Volo.Abp.VirtualFileSystem { public interface IVirtualFileProvider : IFileProvider { + } } \ No newline at end of file diff --git a/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetList.cs b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetList.cs new file mode 100644 index 0000000000..2ddd0ff3a4 --- /dev/null +++ b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetList.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; + +namespace Volo.Abp.VirtualFileSystem +{ + public class VirtualFileSetList : List + { + public List PhysicalPaths { get; } + + public VirtualFileSetList() + { + PhysicalPaths = new List(); + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetListExtensions.cs b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetListExtensions.cs new file mode 100644 index 0000000000..1e29398fb3 --- /dev/null +++ b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetListExtensions.cs @@ -0,0 +1,44 @@ +using System; +using System.IO; +using System.Linq; +using JetBrains.Annotations; +using Volo.Abp.VirtualFileSystem.Embedded; + +namespace Volo.Abp.VirtualFileSystem +{ + public static class VirtualFileSetListExtensions + { + public static void AddEmbedded([NotNull] this VirtualFileSetList list, [CanBeNull] string baseNamespace = null) + { + Check.NotNull(list, nameof(list)); + + list.Add( + new EmbeddedFileSet( + typeof(T).Assembly, + baseNamespace + ) + ); + } + + public static void ReplaceEmbeddedByPyhsical([NotNull] this VirtualFileSetList list, [NotNull] string pyhsicalPath) + { + Check.NotNull(list, nameof(list)); + Check.NotNull(pyhsicalPath, nameof(pyhsicalPath)); + + var assembly = typeof(T).Assembly; + var embeddedFileSets = list.OfType().Where(fs => fs.Assembly == assembly).ToList(); + + foreach (var embeddedFileSet in embeddedFileSets) + { + list.Remove(embeddedFileSet); + + if (!embeddedFileSet.BaseFolderInProject.IsNullOrEmpty()) + { + pyhsicalPath = Path.Combine(pyhsicalPath, embeddedFileSet.BaseFolderInProject); + } + + list.PhysicalPaths.Add(pyhsicalPath); + } + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSystemOptions.cs b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSystemOptions.cs index 087f10af53..205d1a57c8 100644 --- a/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSystemOptions.cs +++ b/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSystemOptions.cs @@ -1,14 +1,12 @@ -using System.Collections.Generic; - -namespace Volo.Abp.VirtualFileSystem +namespace Volo.Abp.VirtualFileSystem { public class VirtualFileSystemOptions { - public List FileSets { get; } + public VirtualFileSetList FileSets { get; } public VirtualFileSystemOptions() { - FileSets = new List(); + FileSets = new VirtualFileSetList(); } } } \ No newline at end of file diff --git a/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/EmbeddedFileManager_Tests.cs b/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/EmbeddedFileManager_Tests.cs index abda04da2e..a57d9493c3 100644 --- a/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/EmbeddedFileManager_Tests.cs +++ b/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/EmbeddedFileManager_Tests.cs @@ -1,11 +1,9 @@ using System.IO; -using System.Reflection; using System.Text; using Microsoft.Extensions.DependencyInjection; using Shouldly; using Volo.Abp.Modularity; using Volo.Abp.TestBase; -using Volo.Abp.VirtualFileSystem.Embedded; using Xunit; namespace Volo.Abp.VirtualFileSystem @@ -42,12 +40,7 @@ namespace Volo.Abp.VirtualFileSystem { services.Configure(options => { - options.FileSets.Add( - new EmbeddedFileSet( - GetType().Assembly, - "Volo.Abp.VirtualFileSystem.MyResources" - ) - ); + options.FileSets.AddEmbedded("Volo.Abp.VirtualFileSystem.MyResources"); }); } }