Skip to content

Commit 4e9e0e3

Browse files
setup TypeFactory for azure client plugin (Azure#45946)
* setup typefactory * change the version to explicit instead of latest * regen * move the nullable option to a global place
1 parent b09b38e commit 4e9e0e3

25 files changed

+2624
-1995
lines changed

eng/Packages.Data.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@
242242
</ItemGroup>
243243

244244
<ItemGroup Condition="'$(IsGeneratorLibrary)' == 'true'">
245-
<PackageReference Update="Microsoft.Generator.CSharp.ClientModel" Version="1.0.0-alpha.20240904.4" />
245+
<PackageReference Update="Microsoft.Generator.CSharp.ClientModel" Version="1.0.0-alpha.20240912.2" />
246246
</ItemGroup>
247247

248248
<!--

eng/packages/http-client-csharp/generator/Azure.Generator/src/AzureClientPlugin.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using Microsoft.Generator.CSharp;
55
using Microsoft.Generator.CSharp.ClientModel;
6+
using System;
67
using System.ComponentModel.Composition;
78

89
namespace Azure.Generator;
@@ -14,12 +15,22 @@ namespace Azure.Generator;
1415
[ExportMetadata("PluginName", nameof(AzureClientPlugin))]
1516
public class AzureClientPlugin : ClientModelPlugin
1617
{
18+
private static AzureClientPlugin? _instance;
19+
internal static AzureClientPlugin Instance => _instance ?? throw new InvalidOperationException("AzureClientPlugin is not loaded.");
20+
21+
/// <inheritdoc/>
22+
public override AzureTypeFactory TypeFactory { get; }
23+
1724
/// <summary>
1825
/// The Azure client plugin to generate the Azure client SDK.
1926
/// </summary>
2027
/// <param name="context"></param>
2128
[ImportingConstructor]
22-
public AzureClientPlugin(GeneratorContext context) : base(context) { }
29+
public AzureClientPlugin(GeneratorContext context) : base(context)
30+
{
31+
TypeFactory = new AzureTypeFactory();
32+
_instance = this;
33+
}
2334

2435
/// <summary>
2536
/// Customize the generation output for Azure client SDK.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
using Microsoft.Generator.CSharp.ClientModel;
5+
6+
namespace Azure.Generator
7+
{
8+
/// <inheritdoc/>
9+
public class AzureTypeFactory : ScmTypeFactory
10+
{
11+
}
12+
}

eng/packages/http-client-csharp/generator/Directory.Build.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
22
<PropertyGroup>
33
<IsClientLibrary>false</IsClientLibrary>
4+
<Nullable>enable</Nullable>
45
</PropertyGroup>
56
<!--
67
Add any shared properties you want for the projects under this package directory that need to be set before the auto imported Directory.Build.props

eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/Models/AnonymousBodyRequest.Serialization.cs

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/Models/AnonymousBodyRequest.cs

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/Models/Friend.Serialization.cs

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/Models/Friend.cs

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/Models/FriendlyModelRequest.Serialization.cs

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/Models/FriendlyModelRequest.cs

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)