Skip to content

Commit 0828e87

Browse files
authored
Update GetTypesFromReferencedFunctionApps (#395)
1 parent 9ae1c3b commit 0828e87

File tree

8 files changed

+78
-52
lines changed

8 files changed

+78
-52
lines changed

src/Microsoft.Azure.WebJobs.Extensions.OpenApi.Core/Extensions/AssemblyExtensions.cs

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ public static Type[] GetLoadableTypes(this Assembly assembly)
2525
{
2626
types = assembly.GetTypes().ToList();
2727
}
28-
catch (ReflectionTypeLoadException exception)
28+
catch (ReflectionTypeLoadException ex)
2929
{
30-
types = exception.Types.Where(t => t != null).ToList();
30+
types = ex.Types.Where(t => t != null).ToList();
3131
}
3232

3333
var assemblies = assembly
@@ -41,9 +41,9 @@ public static Type[] GetLoadableTypes(this Assembly assembly)
4141
{
4242
types.AddRange(Assembly.Load(asmbly).GetTypes());
4343
}
44-
catch (ReflectionTypeLoadException exception)
44+
catch (ReflectionTypeLoadException ex)
4545
{
46-
types.AddRange(exception.Types.Where(t => t != null));
46+
types.AddRange(ex.Types.Where(t => t != null));
4747
}
4848
}
4949

@@ -59,12 +59,38 @@ public static Type[] GetTypesFromReferencedFunctionApps(this Assembly assembly)
5959
{
6060
var directory = Path.GetDirectoryName(assembly.Location);
6161
var dlls = Directory.GetFiles(directory, "*.dll");
62-
var types = dlls.Select(p => Assembly.LoadFile(p))
63-
.SelectMany(p => p.GetTypes()
64-
.Where(q => q.GetMethods()
65-
.Any(r => r.ExistsCustomAttribute<OpenApiOperationAttribute>())
66-
)
67-
).ToArray();
62+
63+
var assemblies = dlls.Select(p =>
64+
{
65+
var asmbly = default(Assembly);
66+
try
67+
{
68+
asmbly = Assembly.LoadFrom(p);
69+
}
70+
catch { }
71+
72+
return asmbly;
73+
})
74+
.Where(p => p != null);
75+
76+
var types = assemblies
77+
.SelectMany(p =>
78+
{
79+
var ts = default(IEnumerable<Type>);
80+
try
81+
{
82+
ts = p.GetTypes();
83+
}
84+
catch (ReflectionTypeLoadException ex)
85+
{
86+
ts = ex.Types.Where(q => q != null);
87+
}
88+
89+
return ts.Where(q => q.GetMethods()
90+
.Any(r => r.ExistsCustomAttribute<OpenApiOperationAttribute>())
91+
);
92+
})
93+
.ToArray();
6894

6995
return types;
7096
}

test-integration/Microsoft.Azure.WebJobs.Extensions.OpenApi.Document.Tests/Microsoft.Azure.WebJobs.Extensions.OpenApi.Document.Tests.csproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,19 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="coverlet.collector" Version="3.1.0">
13+
<PackageReference Include="coverlet.collector" Version="3.1.2">
1414
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1515
<PrivateAssets>all</PrivateAssets>
1616
</PackageReference>
17-
<PackageReference Include="coverlet.msbuild" Version="3.1.0">
17+
<PackageReference Include="coverlet.msbuild" Version="3.1.2">
1818
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1919
<PrivateAssets>all</PrivateAssets>
2020
</PackageReference>
21-
<PackageReference Include="FluentAssertions" Version="6.1.0" />
22-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
21+
<PackageReference Include="FluentAssertions" Version="6.5.1" />
22+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
2323
<PackageReference Include="Microsoft.OpenApi" Version="1.2.3" />
24-
<PackageReference Include="MSTest.TestAdapter" Version="2.2.6" />
25-
<PackageReference Include="MSTest.TestFramework" Version="2.2.6" />
24+
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
25+
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
2626
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
2727
</ItemGroup>
2828

test-integration/Microsoft.Azure.WebJobs.Extensions.OpenApi.TestApp/Microsoft.Azure.WebJobs.Extensions.OpenApi.TestApp.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.3" />
12+
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.0.1" />
1313
</ItemGroup>
1414

1515
<ItemGroup>

test/Microsoft.Azure.Functions.Worker.Extensions.OpenApi.Tests/Microsoft.Azure.Functions.Worker.Extensions.OpenApi.Tests.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,19 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="coverlet.collector" Version="3.1.0">
13+
<PackageReference Include="coverlet.collector" Version="3.1.2">
1414
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1515
<PrivateAssets>all</PrivateAssets>
1616
</PackageReference>
17-
<PackageReference Include="coverlet.msbuild" Version="3.1.0">
17+
<PackageReference Include="coverlet.msbuild" Version="3.1.2">
1818
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1919
<PrivateAssets>all</PrivateAssets>
2020
</PackageReference>
21-
<PackageReference Include="FluentAssertions" Version="6.1.0" />
22-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
23-
<PackageReference Include="Moq" Version="4.16.1" />
24-
<PackageReference Include="MSTest.TestAdapter" Version="2.2.6" />
25-
<PackageReference Include="MSTest.TestFramework" Version="2.2.6" />
21+
<PackageReference Include="FluentAssertions" Version="6.5.1" />
22+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
23+
<PackageReference Include="Moq" Version="4.17.2" />
24+
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
25+
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
2626
</ItemGroup>
2727

2828
<ItemGroup>

test/Microsoft.Azure.WebJobs.Extensions.OpenApi.AppSettings.Tests/Microsoft.Azure.WebJobs.Extensions.OpenApi.AppSettings.Tests.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,20 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="coverlet.collector" Version="3.1.0">
13+
<PackageReference Include="coverlet.collector" Version="3.1.2">
1414
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1515
<PrivateAssets>all</PrivateAssets>
1616
</PackageReference>
17-
<PackageReference Include="coverlet.msbuild" Version="3.1.0">
17+
<PackageReference Include="coverlet.msbuild" Version="3.1.2">
1818
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1919
<PrivateAssets>all</PrivateAssets>
2020
</PackageReference>
21-
<PackageReference Include="FluentAssertions" Version="6.1.0" />
21+
<PackageReference Include="FluentAssertions" Version="6.5.1" />
2222
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.1" />
23-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
24-
<PackageReference Include="Moq" Version="4.16.1" />
25-
<PackageReference Include="MSTest.TestAdapter" Version="2.2.6" />
26-
<PackageReference Include="MSTest.TestFramework" Version="2.2.6" />
23+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
24+
<PackageReference Include="Moq" Version="4.17.2" />
25+
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
26+
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
2727
</ItemGroup>
2828

2929
<!-- <ItemGroup Condition="'$(TargetFramework)'=='netcoreapp2.1'">

test/Microsoft.Azure.WebJobs.Extensions.OpenApi.CLI.Tests/Microsoft.Azure.WebJobs.Extensions.OpenApi.CLI.Tests.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,19 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="coverlet.collector" Version="3.1.0">
13+
<PackageReference Include="coverlet.collector" Version="3.1.2">
1414
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1515
<PrivateAssets>all</PrivateAssets>
1616
</PackageReference>
17-
<PackageReference Include="coverlet.msbuild" Version="3.1.0">
17+
<PackageReference Include="coverlet.msbuild" Version="3.1.2">
1818
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1919
<PrivateAssets>all</PrivateAssets>
2020
</PackageReference>
21-
<PackageReference Include="FluentAssertions" Version="6.1.0" />
22-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
23-
<PackageReference Include="Moq" Version="4.16.1" />
24-
<PackageReference Include="MSTest.TestAdapter" Version="2.2.6" />
25-
<PackageReference Include="MSTest.TestFramework" Version="2.2.6" />
21+
<PackageReference Include="FluentAssertions" Version="6.5.1" />
22+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
23+
<PackageReference Include="Moq" Version="4.17.2" />
24+
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
25+
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
2626
</ItemGroup>
2727

2828
<ItemGroup>

test/Microsoft.Azure.WebJobs.Extensions.OpenApi.Core.Tests/Microsoft.Azure.WebJobs.Extensions.OpenApi.Core.Tests.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,20 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="coverlet.collector" Version="3.1.0">
13+
<PackageReference Include="coverlet.collector" Version="3.1.2">
1414
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1515
<PrivateAssets>all</PrivateAssets>
1616
</PackageReference>
17-
<PackageReference Include="coverlet.msbuild" Version="3.1.0">
17+
<PackageReference Include="coverlet.msbuild" Version="3.1.2">
1818
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1919
<PrivateAssets>all</PrivateAssets>
2020
</PackageReference>
21-
<PackageReference Include="FluentAssertions" Version="6.1.0" />
21+
<PackageReference Include="FluentAssertions" Version="6.5.1" />
2222
<PackageReference Include="Microsoft.Extensions.Primitives" Version="2.1.1" />
23-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
24-
<PackageReference Include="Moq" Version="4.16.1" />
25-
<PackageReference Include="MSTest.TestAdapter" Version="2.2.6" />
26-
<PackageReference Include="MSTest.TestFramework" Version="2.2.6" />
23+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
24+
<PackageReference Include="Moq" Version="4.17.2" />
25+
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
26+
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
2727
</ItemGroup>
2828

2929
<ItemGroup>

test/Microsoft.Azure.WebJobs.Extensions.OpenApi.Tests/Microsoft.Azure.WebJobs.Extensions.OpenApi.Tests.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,19 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="coverlet.collector" Version="3.1.0">
13+
<PackageReference Include="coverlet.collector" Version="3.1.2">
1414
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1515
<PrivateAssets>all</PrivateAssets>
1616
</PackageReference>
17-
<PackageReference Include="coverlet.msbuild" Version="3.1.0">
17+
<PackageReference Include="coverlet.msbuild" Version="3.1.2">
1818
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1919
<PrivateAssets>all</PrivateAssets>
2020
</PackageReference>
21-
<PackageReference Include="FluentAssertions" Version="6.1.0" />
22-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
23-
<PackageReference Include="Moq" Version="4.16.1" />
24-
<PackageReference Include="MSTest.TestAdapter" Version="2.2.6" />
25-
<PackageReference Include="MSTest.TestFramework" Version="2.2.6" />
21+
<PackageReference Include="FluentAssertions" Version="6.5.1" />
22+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
23+
<PackageReference Include="Moq" Version="4.17.2" />
24+
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
25+
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
2626
</ItemGroup>
2727

2828
<ItemGroup>

0 commit comments

Comments
 (0)