diff --git a/src/OrchardCore/OrchardCore.DisplayManagement/Implementation/DefaultShapeFactory.cs b/src/OrchardCore/OrchardCore.DisplayManagement/Implementation/DefaultShapeFactory.cs index 277253a4265..3844afb4398 100644 --- a/src/OrchardCore/OrchardCore.DisplayManagement/Implementation/DefaultShapeFactory.cs +++ b/src/OrchardCore/OrchardCore.DisplayManagement/Implementation/DefaultShapeFactory.cs @@ -38,7 +38,7 @@ public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, o if (binderName.EndsWith("Async", StringComparison.Ordinal)) { - binderName = binder.Name[^"Async".Length..]; + binderName = binder.Name[..^"Async".Length]; } result = ShapeFactoryExtensions diff --git a/test/OrchardCore.Tests/DisplayManagement/ShapeFactoryTests.cs b/test/OrchardCore.Tests/DisplayManagement/ShapeFactoryTests.cs index 2cd45c4de16..bf11366b968 100644 --- a/test/OrchardCore.Tests/DisplayManagement/ShapeFactoryTests.cs +++ b/test/OrchardCore.Tests/DisplayManagement/ShapeFactoryTests.cs @@ -61,6 +61,15 @@ public async Task CallSyntax() Assert.Equal("Foo", metadata.Type); } + [Fact] + public async Task CallSyntaxAsync() + { + dynamic factory = _serviceProvider.GetService(); + var foo = await factory.FooAsync(); + ShapeMetadata metadata = foo.Metadata; + Assert.Equal("Foo", metadata.Type); + } + [Fact] public async Task CallInitializer() {