mirror of https://github.com/abpframework/abp.git
13 changed files with 166 additions and 18 deletions
@ -0,0 +1,31 @@ |
|||
using System; |
|||
using JetBrains.Annotations; |
|||
using Microsoft.Extensions.Configuration; |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
using Volo.Abp; |
|||
using Volo.Abp.AspNetCore.Components.WebAssembly; |
|||
using Volo.Abp.Modularity; |
|||
|
|||
namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting |
|||
{ |
|||
public static class AbpWebAssemblyHostBuilderExtensions |
|||
{ |
|||
public static IAbpApplicationWithExternalServiceProvider AddApplication<TStartupModule>( |
|||
[NotNull] this WebAssemblyHostBuilder builder, |
|||
Action<AbpWebAssemblyApplicationCreationOptions> options) |
|||
where TStartupModule : IAbpModule |
|||
{ |
|||
Check.NotNull(builder, nameof(builder)); |
|||
|
|||
builder.Services.AddSingleton<IConfiguration>(builder.Configuration); |
|||
builder.Services.AddSingleton(builder); |
|||
|
|||
var application = builder.Services.AddApplication<TStartupModule>(opts => |
|||
{ |
|||
options?.Invoke(new AbpWebAssemblyApplicationCreationOptions(builder, opts)); |
|||
}); |
|||
|
|||
return application; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
using Microsoft.AspNetCore.Components.WebAssembly.Hosting; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Components.WebAssembly |
|||
{ |
|||
public class AbpWebAssemblyApplicationCreationOptions |
|||
{ |
|||
public WebAssemblyHostBuilder HostBuilder { get; } |
|||
|
|||
public AbpApplicationCreationOptions ApplicationCreationOptions { get; } |
|||
|
|||
public AbpWebAssemblyApplicationCreationOptions( |
|||
WebAssemblyHostBuilder hostBuilder, |
|||
AbpApplicationCreationOptions applicationCreationOptions) |
|||
{ |
|||
HostBuilder = hostBuilder; |
|||
ApplicationCreationOptions = applicationCreationOptions; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,3 @@ |
|||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|||
</Weavers> |
|||
@ -0,0 +1,30 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|||
<xs:element name="Weavers"> |
|||
<xs:complexType> |
|||
<xs:all> |
|||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|||
<xs:complexType> |
|||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|||
</xs:complexType> |
|||
</xs:element> |
|||
</xs:all> |
|||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|||
<xs:annotation> |
|||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|||
<xs:annotation> |
|||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|||
<xs:annotation> |
|||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
</xs:complexType> |
|||
</xs:element> |
|||
</xs:schema> |
|||
@ -0,0 +1,23 @@ |
|||
using System; |
|||
using Autofac; |
|||
using JetBrains.Annotations; |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
using Volo.Abp; |
|||
using Volo.Abp.AspNetCore.Components.WebAssembly; |
|||
|
|||
namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting |
|||
{ |
|||
public static class AbpWebAssemblyApplicationCreationOptionsAutofacExtensions |
|||
{ |
|||
public static void UseAutofac( |
|||
[NotNull] this AbpWebAssemblyApplicationCreationOptions options, |
|||
[CanBeNull] Action<ContainerBuilder> configure = null) |
|||
{ |
|||
options.HostBuilder.Services.AddAutofacServiceProviderFactory(); |
|||
options.HostBuilder.ConfigureContainer( |
|||
options.HostBuilder.Services.GetSingletonInstance<IServiceProviderFactory<ContainerBuilder>>(), |
|||
configure |
|||
); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,16 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk"> |
|||
|
|||
<Import Project="..\..\..\configureawait.props" /> |
|||
<Import Project="..\..\..\common.props" /> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>netstandard2.1</TargetFramework> |
|||
<RootNamespace /> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<ProjectReference Include="..\Volo.Abp.AspNetCore.Components.WebAssembly\Volo.Abp.AspNetCore.Components.WebAssembly.csproj" /> |
|||
<ProjectReference Include="..\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
@ -0,0 +1,14 @@ |
|||
using Volo.Abp.AspNetCore.Components.WebAssembly; |
|||
using Volo.Abp.Modularity; |
|||
|
|||
namespace Volo.Abp.Autofac.WebAssembly |
|||
{ |
|||
[DependsOn( |
|||
typeof(AbpAutofacModule), |
|||
typeof(AbpAspNetCoreComponentsWebAssemblyModule) |
|||
)] |
|||
public class AbpAutofacWebAssemblyModule : AbpModule |
|||
{ |
|||
|
|||
} |
|||
} |
|||
Loading…
Reference in new issue