diff --git a/docs/ai/microsoft-extensions-ai.md b/docs/ai/microsoft-extensions-ai.md index ca4465bf29d7d..eaca86db326cf 100644 --- a/docs/ai/microsoft-extensions-ai.md +++ b/docs/ai/microsoft-extensions-ai.md @@ -259,7 +259,8 @@ For more samples, see the [dotnet/ai-samples](https://aka.ms/meai-samples) GitHu ## See also +- [Request a response with structured output](./quickstarts/structured-output.md) - [Build an AI chat app with .NET](./quickstarts/build-chat-app.md) -- [.NET dependency injection](../core/extensions/dependency-injection.md) -- [Rate limit an HTTP handler in .NET](../core/extensions/http-ratelimiter.md) +- [Dependency injection in .NET](../core/extensions/dependency-injection.md) - [Caching in .NET](../core/extensions/caching.md) +- [Rate limit an HTTP handler in .NET](../core/extensions/http-ratelimiter.md) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 3caa47007fe71..1738c15394ff3 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -29,7 +29,7 @@ | Conversational Language Understanding | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Language.Conversations/1.1.0)
NuGet [2.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Language.Conversations/2.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Language.Conversations-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations_1.1.0/sdk/cognitivelanguage/Azure.AI.Language.Conversations/)
GitHub [2.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations_2.0.0-beta.2/sdk/cognitivelanguage/Azure.AI.Language.Conversations/) | | Conversations Authoring | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.Conversations.Authoring/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.Conversations.Authoring-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations.Authoring_1.0.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.Conversations.Authoring/) | | Core - Client - AMQP | NuGet [1.3.1](https://www.nuget.org/packages/Azure.Core.Amqp/1.3.1) | [docs](/dotnet/api/overview/azure/Core.Amqp-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core.Amqp_1.3.1/sdk/core/Azure.Core.Amqp/) | -| Core - Client - Core | NuGet [1.45.0](https://www.nuget.org/packages/Azure.Core/1.45.0) | [docs](/dotnet/api/overview/azure/Core-readme) | GitHub [1.45.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core_1.45.0/sdk/core/Azure.Core/) | +| Core - Client - Core | NuGet [1.46.0](https://www.nuget.org/packages/Azure.Core/1.46.0) | [docs](/dotnet/api/overview/azure/Core-readme) | GitHub [1.46.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core_1.46.0/sdk/core/Azure.Core/) | | Core Newtonsoft Json | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.NewtonsoftJson/2.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.NewtonsoftJson-readme) | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.NewtonsoftJson_2.0.0/sdk/core/Microsoft.Azure.Core.NewtonsoftJson/) | | Core WCF Storage Queues | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.CoreWCF.Azure.StorageQueues/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.CoreWCF.Azure.StorageQueues-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.CoreWCF.Azure.StorageQueues_1.0.0-beta.1/sdk/extension-wcf/Microsoft.CoreWCF.Azure.StorageQueues/) | | Data Movement | NuGet [12.1.0](https://www.nuget.org/packages/Azure.Storage.DataMovement/12.1.0) | [docs](/dotnet/api/overview/azure/Storage.DataMovement-readme) | GitHub [12.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.DataMovement_12.1.0/sdk/storage/Azure.Storage.DataMovement/) | @@ -97,12 +97,12 @@ | Schema Registry | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.4.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.4.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | | Schema Registry - Avro | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.1/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | | Service Bus | NuGet [7.19.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.19.0) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.19.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.19.0/sdk/servicebus/Azure.Messaging.ServiceBus/) | -| Storage - Blobs | NuGet [12.24.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.24.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.24.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.24.0/sdk/storage/Azure.Storage.Blobs/) | -| Storage - Blobs Batch | NuGet [12.21.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.21.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.21.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.21.0/sdk/storage/Azure.Storage.Blobs.Batch/) | -| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.54](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.54) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [12.0.0-preview.54](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.54/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | -| Storage - Files Data Lake | NuGet [12.22.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.22.0) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.22.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.22.0/sdk/storage/Azure.Storage.Files.DataLake/) | -| Storage - Files Share | NuGet [12.22.0](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.22.0) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.22.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.22.0/sdk/storage/Azure.Storage.Files.Shares/) | -| Storage - Queues | NuGet [12.22.0](https://www.nuget.org/packages/Azure.Storage.Queues/12.22.0) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.22.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.22.0/sdk/storage/Azure.Storage.Queues/) | +| Storage - Blobs | NuGet [12.24.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.24.0)
NuGet [12.25.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.25.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.24.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.24.0/sdk/storage/Azure.Storage.Blobs/)
GitHub [12.25.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.25.0-beta.1/sdk/storage/Azure.Storage.Blobs/) | +| Storage - Blobs Batch | NuGet [12.21.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.21.0)
NuGet [12.22.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.22.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.21.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.21.0/sdk/storage/Azure.Storage.Blobs.Batch/)
GitHub [12.22.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.22.0-beta.1/sdk/storage/Azure.Storage.Blobs.Batch/) | +| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.55](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.55) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [12.0.0-preview.55](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.55/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | +| Storage - Files Data Lake | NuGet [12.22.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.22.0)
NuGet [12.23.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.23.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.22.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.22.0/sdk/storage/Azure.Storage.Files.DataLake/)
GitHub [12.23.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.23.0-beta.1/sdk/storage/Azure.Storage.Files.DataLake/) | +| Storage - Files Share | NuGet [12.22.0](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.22.0)
NuGet [12.23.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.23.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.22.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.22.0/sdk/storage/Azure.Storage.Files.Shares/)
GitHub [12.23.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.23.0-beta.1/sdk/storage/Azure.Storage.Files.Shares/) | +| Storage - Queues | NuGet [12.22.0](https://www.nuget.org/packages/Azure.Storage.Queues/12.22.0)
NuGet [12.23.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Queues/12.23.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.22.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.22.0/sdk/storage/Azure.Storage.Queues/)
GitHub [12.23.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.23.0-beta.1/sdk/storage/Azure.Storage.Queues/) | | Synapse - AccessControl | NuGet [1.0.0-preview.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.AccessControl/1.0.0-preview.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.AccessControl-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-preview.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.AccessControl_1.0.0-preview.5/sdk/synapse/Azure.Analytics.Synapse.AccessControl/) | | Synapse - Artifacts | NuGet [1.0.0-preview.21](https://www.nuget.org/packages/Azure.Analytics.Synapse.Artifacts/1.0.0-preview.21) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Artifacts-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-preview.21](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Artifacts_1.0.0-preview.21/sdk/synapse/Azure.Analytics.Synapse.Artifacts/) | | Synapse - Managed Private Endpoints | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.ManagedPrivateEndpoints/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.ManagedPrivateEndpoints-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.ManagedPrivateEndpoints_1.0.0-beta.5/sdk/synapse/Azure.Analytics.Synapse.ManagedPrivateEndpoints/) | @@ -132,7 +132,7 @@ | Functions extension for Azure Tables | NuGet [1.3.3](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Tables/1.3.3) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Tables-readme) | GitHub [1.3.3](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Tables_1.3.3/sdk/tables/Microsoft.Azure.WebJobs.Extensions.Tables/) | | Key Encryptor for .NET Data Protection | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Keys/1.4.0) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Keys-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Keys_1.4.0/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Keys/) | | Secrets Configuration Provider for .NET | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.Configuration.Secrets/1.4.0) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.Configuration.Secrets-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.Configuration.Secrets_1.4.0/sdk/extensions/Azure.Extensions.AspNetCore.Configuration.Secrets/) | -| Storage - Common | NuGet [12.23.0](https://www.nuget.org/packages/Azure.Storage.Common/12.23.0) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.23.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.23.0/sdk/storage/Azure.Storage.Common/) | +| Storage - Common | NuGet [12.23.0](https://www.nuget.org/packages/Azure.Storage.Common/12.23.0)
NuGet [12.24.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Common/12.24.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.23.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.23.0/sdk/storage/Azure.Storage.Common/)
GitHub [12.24.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.24.0-beta.1/sdk/storage/Azure.Storage.Common/) | | WebJobs Extensions - Event Grid | NuGet [3.4.4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.4.4) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.4.4](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.4.4/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | | WebJobs Extensions - Event Hubs | NuGet [6.5.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/6.5.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [6.5.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_6.5.1/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | | WebJobs Extensions - Service Bus | NuGet [5.16.6](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.16.6) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.16.6](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.16.6/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | @@ -216,7 +216,7 @@ | Resource Management - Customer Insights | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.CustomerInsights/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.CustomerInsights-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.CustomerInsights_1.0.0-beta.5/sdk/customer-insights/Azure.ResourceManager.CustomerInsights/) | | Resource Management - Data Box | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.DataBox/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.DataBox-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataBox_1.1.0/sdk/databox/Azure.ResourceManager.DataBox/) | | Resource Management - Data Box Edge | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.DataBoxEdge/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DataBoxEdge-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataBoxEdge_1.1.1/sdk/databoxedge/Azure.ResourceManager.DataBoxEdge/) | -| Resource Management - Data Factory | NuGet [1.7.0](https://www.nuget.org/packages/Azure.ResourceManager.DataFactory/1.7.0) | [docs](/dotnet/api/overview/azure/ResourceManager.DataFactory-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataFactory_1.7.0/sdk/datafactory/Azure.ResourceManager.DataFactory/) | +| Resource Management - Data Factory | NuGet [1.8.0](https://www.nuget.org/packages/Azure.ResourceManager.DataFactory/1.8.0) | [docs](/dotnet/api/overview/azure/ResourceManager.DataFactory-readme) | GitHub [1.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataFactory_1.8.0/sdk/datafactory/Azure.ResourceManager.DataFactory/) | | Resource Management - Data Lake Analytics | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.DataLakeAnalytics/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DataLakeAnalytics-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataLakeAnalytics_1.1.1/sdk/datalake-analytics/Azure.ResourceManager.DataLakeAnalytics/) | | Resource Management - Data Lake Store | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.DataLakeStore/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DataLakeStore-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataLakeStore_1.1.1/sdk/datalake-store/Azure.ResourceManager.DataLakeStore/) | | Resource Management - Data Migration | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.DataMigration/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.DataMigration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataMigration_1.0.0-beta.5/sdk/datamigration/Azure.ResourceManager.DataMigration/) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index d3b0a9334917f..fbaea06526a39 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -30,7 +30,7 @@ | Conversational Language Understanding | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Language.Conversations/1.1.0)
NuGet [2.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Language.Conversations/2.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Language.Conversations-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations_1.1.0/sdk/cognitivelanguage/Azure.AI.Language.Conversations/)
GitHub [2.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations_2.0.0-beta.2/sdk/cognitivelanguage/Azure.AI.Language.Conversations/) | | Conversations Authoring | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.Conversations.Authoring/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.Conversations.Authoring-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations.Authoring_1.0.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.Conversations.Authoring/) | | Core - Client - AMQP | NuGet [1.3.1](https://www.nuget.org/packages/Azure.Core.Amqp/1.3.1) | [docs](/dotnet/api/overview/azure/Core.Amqp-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core.Amqp_1.3.1/sdk/core/Azure.Core.Amqp/) | -| Core - Client - Core | NuGet [1.45.0](https://www.nuget.org/packages/Azure.Core/1.45.0) | [docs](/dotnet/api/overview/azure/Core-readme) | GitHub [1.45.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core_1.45.0/sdk/core/Azure.Core/) | +| Core - Client - Core | NuGet [1.46.0](https://www.nuget.org/packages/Azure.Core/1.46.0) | [docs](/dotnet/api/overview/azure/Core-readme) | GitHub [1.46.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core_1.46.0/sdk/core/Azure.Core/) | | Core Newtonsoft Json | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.NewtonsoftJson/2.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.NewtonsoftJson-readme) | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.NewtonsoftJson_2.0.0/sdk/core/Microsoft.Azure.Core.NewtonsoftJson/) | | Core WCF Storage Queues | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.CoreWCF.Azure.StorageQueues/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.CoreWCF.Azure.StorageQueues-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.CoreWCF.Azure.StorageQueues_1.0.0-beta.1/sdk/extension-wcf/Microsoft.CoreWCF.Azure.StorageQueues/) | | Data Movement | NuGet [12.1.0](https://www.nuget.org/packages/Azure.Storage.DataMovement/12.1.0) | [docs](/dotnet/api/overview/azure/Storage.DataMovement-readme) | GitHub [12.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.DataMovement_12.1.0/sdk/storage/Azure.Storage.DataMovement/) | @@ -101,12 +101,12 @@ | Schema Registry | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.4.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.4.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | | Schema Registry - Avro | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.1/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | | Service Bus | NuGet [7.19.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.19.0) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.19.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.19.0/sdk/servicebus/Azure.Messaging.ServiceBus/) | -| Storage - Blobs | NuGet [12.24.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.24.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.24.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.24.0/sdk/storage/Azure.Storage.Blobs/) | -| Storage - Blobs Batch | NuGet [12.21.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.21.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.21.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.21.0/sdk/storage/Azure.Storage.Blobs.Batch/) | -| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.54](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.54) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [12.0.0-preview.54](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.54/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | -| Storage - Files Data Lake | NuGet [12.22.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.22.0) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.22.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.22.0/sdk/storage/Azure.Storage.Files.DataLake/) | -| Storage - Files Share | NuGet [12.22.0](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.22.0) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.22.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.22.0/sdk/storage/Azure.Storage.Files.Shares/) | -| Storage - Queues | NuGet [12.22.0](https://www.nuget.org/packages/Azure.Storage.Queues/12.22.0) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.22.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.22.0/sdk/storage/Azure.Storage.Queues/) | +| Storage - Blobs | NuGet [12.24.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.24.0)
NuGet [12.25.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.25.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.24.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.24.0/sdk/storage/Azure.Storage.Blobs/)
GitHub [12.25.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.25.0-beta.1/sdk/storage/Azure.Storage.Blobs/) | +| Storage - Blobs Batch | NuGet [12.21.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.21.0)
NuGet [12.22.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.22.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.21.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.21.0/sdk/storage/Azure.Storage.Blobs.Batch/)
GitHub [12.22.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.22.0-beta.1/sdk/storage/Azure.Storage.Blobs.Batch/) | +| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.55](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.55) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [12.0.0-preview.55](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.55/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | +| Storage - Files Data Lake | NuGet [12.22.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.22.0)
NuGet [12.23.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.23.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.22.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.22.0/sdk/storage/Azure.Storage.Files.DataLake/)
GitHub [12.23.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.23.0-beta.1/sdk/storage/Azure.Storage.Files.DataLake/) | +| Storage - Files Share | NuGet [12.22.0](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.22.0)
NuGet [12.23.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.23.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.22.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.22.0/sdk/storage/Azure.Storage.Files.Shares/)
GitHub [12.23.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.23.0-beta.1/sdk/storage/Azure.Storage.Files.Shares/) | +| Storage - Queues | NuGet [12.22.0](https://www.nuget.org/packages/Azure.Storage.Queues/12.22.0)
NuGet [12.23.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Queues/12.23.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.22.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.22.0/sdk/storage/Azure.Storage.Queues/)
GitHub [12.23.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.23.0-beta.1/sdk/storage/Azure.Storage.Queues/) | | Synapse - AccessControl | NuGet [1.0.0-preview.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.AccessControl/1.0.0-preview.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.AccessControl-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-preview.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.AccessControl_1.0.0-preview.5/sdk/synapse/Azure.Analytics.Synapse.AccessControl/) | | Synapse - Artifacts | NuGet [1.0.0-preview.21](https://www.nuget.org/packages/Azure.Analytics.Synapse.Artifacts/1.0.0-preview.21) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Artifacts-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-preview.21](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Artifacts_1.0.0-preview.21/sdk/synapse/Azure.Analytics.Synapse.Artifacts/) | | Synapse - Managed Private Endpoints | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.ManagedPrivateEndpoints/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.ManagedPrivateEndpoints-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.ManagedPrivateEndpoints_1.0.0-beta.5/sdk/synapse/Azure.Analytics.Synapse.ManagedPrivateEndpoints/) | @@ -137,7 +137,7 @@ | Functions extension for Azure Tables | NuGet [1.3.3](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Tables/1.3.3) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Tables-readme) | GitHub [1.3.3](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Tables_1.3.3/sdk/tables/Microsoft.Azure.WebJobs.Extensions.Tables/) | | Key Encryptor for .NET Data Protection | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Keys/1.4.0) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Keys-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Keys_1.4.0/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Keys/) | | Secrets Configuration Provider for .NET | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.Configuration.Secrets/1.4.0) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.Configuration.Secrets-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.Configuration.Secrets_1.4.0/sdk/extensions/Azure.Extensions.AspNetCore.Configuration.Secrets/) | -| Storage - Common | NuGet [12.23.0](https://www.nuget.org/packages/Azure.Storage.Common/12.23.0) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.23.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.23.0/sdk/storage/Azure.Storage.Common/) | +| Storage - Common | NuGet [12.23.0](https://www.nuget.org/packages/Azure.Storage.Common/12.23.0)
NuGet [12.24.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Common/12.24.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.23.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.23.0/sdk/storage/Azure.Storage.Common/)
GitHub [12.24.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.24.0-beta.1/sdk/storage/Azure.Storage.Common/) | | WebJobs Extensions - Event Grid | NuGet [3.4.4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.4.4) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.4.4](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.4.4/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | | WebJobs Extensions - Event Hubs | NuGet [6.5.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/6.5.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [6.5.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_6.5.1/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | | WebJobs Extensions - Service Bus | NuGet [5.16.6](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.16.6) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.16.6](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.16.6/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | @@ -222,7 +222,7 @@ | Resource Management - Customer Insights | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.CustomerInsights/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.CustomerInsights-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.CustomerInsights_1.0.0-beta.5/sdk/customer-insights/Azure.ResourceManager.CustomerInsights/) | | Resource Management - Data Box | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.DataBox/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.DataBox-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataBox_1.1.0/sdk/databox/Azure.ResourceManager.DataBox/) | | Resource Management - Data Box Edge | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.DataBoxEdge/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DataBoxEdge-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataBoxEdge_1.1.1/sdk/databoxedge/Azure.ResourceManager.DataBoxEdge/) | -| Resource Management - Data Factory | NuGet [1.7.0](https://www.nuget.org/packages/Azure.ResourceManager.DataFactory/1.7.0) | [docs](/dotnet/api/overview/azure/ResourceManager.DataFactory-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataFactory_1.7.0/sdk/datafactory/Azure.ResourceManager.DataFactory/) | +| Resource Management - Data Factory | NuGet [1.8.0](https://www.nuget.org/packages/Azure.ResourceManager.DataFactory/1.8.0) | [docs](/dotnet/api/overview/azure/ResourceManager.DataFactory-readme) | GitHub [1.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataFactory_1.8.0/sdk/datafactory/Azure.ResourceManager.DataFactory/) | | Resource Management - Data Lake Analytics | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.DataLakeAnalytics/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DataLakeAnalytics-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataLakeAnalytics_1.1.1/sdk/datalake-analytics/Azure.ResourceManager.DataLakeAnalytics/) | | Resource Management - Data Lake Store | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.DataLakeStore/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DataLakeStore-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataLakeStore_1.1.1/sdk/datalake-store/Azure.ResourceManager.DataLakeStore/) | | Resource Management - Data Migration | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.DataMigration/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.DataMigration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataMigration_1.0.0-beta.5/sdk/datamigration/Azure.ResourceManager.DataMigration/) | diff --git a/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj b/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj index 121c0e56deac2..d1ea44575d3cb 100644 --- a/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj +++ b/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj @@ -10,7 +10,7 @@ - + diff --git a/docs/csharp/index.yml b/docs/csharp/index.yml index d8f3fc2978ada..9c985e9031b1f 100644 --- a/docs/csharp/index.yml +++ b/docs/csharp/index.yml @@ -226,17 +226,13 @@ additionalContent: - title: Mobile and Desktop links: - url: /dotnet/desktop/wpf/ - text: Windows Presentation Foundation (.NET 5+) + text: Windows Presentation Foundation - url: /dotnet/desktop/winforms/ - text: Windows Forms (.NET 5+) + text: Windows Forms - url: /dotnet/maui text: .NET Multi-platform App UI (.NET MAUI) - url: /azure/developer/mobile-apps text: Develop mobile apps with Azure - - url: /dotnet/desktop/wpf/?view=netframeworkdesktop-4.8&preserve-view=true - text: Windows Presentation Foundation (.NET Framework) - - url: /dotnet/desktop/winforms/?view=netframeworkdesktop-4.8&preserve-view=true - text: Windows Forms (.NET Framework) # Card - title: Microservices links: diff --git a/docs/csharp/misc/cs0136.md b/docs/csharp/misc/cs0136.md index 7ae099c271593..33f022120c250 100644 --- a/docs/csharp/misc/cs0136.md +++ b/docs/csharp/misc/cs0136.md @@ -34,7 +34,28 @@ namespace MyNamespace } } } -``` +``` + +The compiler reports this error regardless of the textual order of the variable declarations, as shown in the following example: + +```csharp +// CS0136.cs +namespace MyNamespace +{ + public class MyClass + { + public static void Main() + { + if (true) + { + int i = 1; // CS0136, hides i outside this block + } + int i = 0; + i++; + } + } +} +``` From the [C# Language Specification](~/_csharpstandard/standard/basic-concepts.md#73-declarations): diff --git a/docs/csharp/whats-new/csharp-14.md b/docs/csharp/whats-new/csharp-14.md index a29a00fbd7a13..e2b817a7ac480 100644 --- a/docs/csharp/whats-new/csharp-14.md +++ b/docs/csharp/whats-new/csharp-14.md @@ -136,9 +136,9 @@ Only the implementing declaration of a partial constructor can include a constru The implementing declaration of a partial event must include `add` and `remove` accessors. The defining declaration declares a field-like event. -## Null conditional assignment +## Null-conditional assignment -The null conditional member access operators, `?.` and ``?[]`, can now be used on the left hand side of an assignment or compound assignment. +The null-conditional member access operators, `?.` and `?[]`, can now be used on the left hand side of an assignment or compound assignment. Before C# 14, you needed to null-check a variable before assigning to a property: @@ -157,9 +157,9 @@ customer?.Order = GetCurrentOrder(); The right side of the `=` operator is evaluated only when the left side isn't null. If `customer` is null, the code doesn't call `GetCurrentOrder`. -In addition to assignment, you can use null conditional member access operators with compound assignment operators (`+=`, `-=`, and others). However, increment and decrement, `++` and `--`, aren't allowed. +In addition to assignment, you can use null-conditional member access operators with compound assignment operators (`+=`, `-=`, and others). However, increment and decrement, `++` and `--`, aren't allowed. -You can learn more in the language reference article on the [conditional member access](../language-reference/operators/member-access-operators.md#null-conditional-operators--and-) and the feature specification for [null conditional assignment](~/_csharplang/proposals/null-conditional-assignment.md) +You can learn more in the language reference article on the [conditional member access](../language-reference/operators/member-access-operators.md#null-conditional-operators--and-) and the feature specification for [null-conditional assignment](~/_csharplang/proposals/null-conditional-assignment.md). ## See also diff --git a/docs/framework/index.yml b/docs/framework/index.yml index b5642da1a0e7a..944d778b0fc48 100644 --- a/docs/framework/index.yml +++ b/docs/framework/index.yml @@ -96,10 +96,10 @@ landingContent: links: - text: Desktop guide introduction url: /dotnet/desktop/ - - text: .NET Framework WPF - url: /dotnet/desktop/wpf/?view=netframeworkdesktop-4.8 - - text: .NET Framework Windows Forms - url: /dotnet/desktop/winforms/?view=netframeworkdesktop-4.8 + - text: WPF + url: /dotnet/desktop/wpf/ + - text: Windows Forms + url: /dotnet/desktop/winforms/ # Card - title: Create WPF apps @@ -107,11 +107,11 @@ landingContent: - linkListType: overview links: - text: Overview of WPF - url: /dotnet/desktop/wpf/?view=netframeworkdesktop-4.8 + url: /dotnet/desktop/wpf/ - linkListType: tutorial links: - text: Create your first WPF app in Visual Studio - url: /dotnet/desktop/wpf/getting-started/walkthrough-my-first-wpf-desktop-application/?view=netframeworkdesktop-4.8 + url: /dotnet/desktop/wpf/getting-started/walkthrough-my-first-wpf-desktop-application/ # Card - title: Work with data using ADO.NET diff --git a/docs/framework/toc.yml b/docs/framework/toc.yml index 90d4938d6cd0a..633c25e4ef557 100644 --- a/docs/framework/toc.yml +++ b/docs/framework/toc.yml @@ -16,7 +16,7 @@ items: - name: Overview href: install/index.md - name: Install on Windows and Windows Server - href: install/on-windows-and-server.md + href: install/on-windows-and-server.md - name: For developers href: install/guide-for-developers.md - name: Versions and dependencies @@ -128,9 +128,9 @@ items: - name: Overview href: develop-client-apps.md - name: Windows Presentation Foundation - href: /dotnet/desktop/wpf/?view=netframeworkdesktop-4.8&preserve-view=true + href: /dotnet/desktop/wpf/ - name: Windows Forms - href: /dotnet/desktop/winforms/?view=netframeworkdesktop-4.8&preserve-view=true + href: /dotnet/desktop/winforms/ - name: Service-oriented apps with WCF href: wcf/ - name: Windows Workflow Foundation diff --git a/docs/index.yml b/docs/index.yml index e657475002e70..59be61d2d04a3 100644 --- a/docs/index.yml +++ b/docs/index.yml @@ -274,13 +274,9 @@ additionalContent: - url: /uwp text: Universal Windows apps - url: /dotnet/desktop/wpf/ - text: Windows Presentation Foundation (.NET 5+) - - url: /dotnet/desktop/wpf/?view=netframeworkdesktop-4.8&preserve-view=true - text: Windows Presentation Foundation (.NET Framework) + text: Windows Presentation Foundation - url: /dotnet/desktop/winforms/ - text: Windows Forms (.NET 5+) - - url: /dotnet/desktop/winforms/?view=netframeworkdesktop-4.8&preserve-view=true - text: Windows Forms (.NET Framework) + text: Windows Forms - url: /dotnet/maui text: .NET Multi-platform App UI (.NET MAUI) # Card diff --git a/docs/standard/datetime/system-text-json-support.md b/docs/standard/datetime/system-text-json-support.md index ab1b15a7814ce..e995755d37193 100644 --- a/docs/standard/datetime/system-text-json-support.md +++ b/docs/standard/datetime/system-text-json-support.md @@ -22,7 +22,7 @@ The `System.Text.Json` library parses and writes and , , , and types parse and write and -text representations according to the extended profile of the ISO 8601-1:2019 format. For example, `2019-07-26T16:59:57-05:00`. +text representations according to the extended profile of the ISO 8601-1:2019 format, for example, `2019-07-26T16:59:57-05:00`. and data can be serialized with : @@ -32,18 +32,16 @@ text representations according to the extended profile of the ISO 8601-1:2019 fo :::code language="csharp" source="snippets/system-text-json-support/csharp/deserializing-with-jsonserializer-valid/Program.cs"::: -With default options, input and text representations must conform to the extended ISO 8601-1:2019 profile. -Attempting to deserialize representations that don't conform to the profile will cause to throw a : +With default options, input and text representations must conform to the extended ISO 8601-1:2019 profile. If you attempt to deserialize representations that don't conform to the profile, throws a : :::code language="csharp" source="snippets/system-text-json-support/csharp/deserializing-with-jsonserializer-error/Program.cs"::: -The provides structured access to the contents of a JSON payload, including -and representations. The following example shows how to calculate the average + provides structured access to the contents of a JSON payload, including and representations. The following example shows how to calculate the average temperature on Mondays from a collection of temperatures: :::code language="csharp" source="snippets/system-text-json-support/csharp/computing-with-jsondocument-valid/Program.cs"::: -Attempting to compute the average temperature given a payload with non-compliant representations will cause to throw a : +If you attempt to compute the average temperature given a payload with non-compliant representations, throws a : :::code language="csharp" source="snippets/system-text-json-support/csharp/computing-with-jsondocument-error/Program.cs"::: @@ -55,7 +53,7 @@ The lower level writes will cause it to throw a : +If you attempt to read non-compliant formats with , it throws a : :::code language="csharp" source="snippets/system-text-json-support/csharp/reading-with-utf8jsonreader-error/Program.cs"::: @@ -67,8 +65,12 @@ Attempting to read non-compliant formats with -If you want the serializer to perform custom parsing or formatting, you can implement [custom converters](xref:System.Text.Json.Serialization.JsonConverter%601). -Here are a few examples: +If you want the serializer to perform custom parsing or formatting, you can implement [custom converters](xref:System.Text.Json.Serialization.JsonConverter%601). The following sections show a few examples: + +- [DateTime(Offset).Parse and DateTime(Offset).ToString](#datetimeoffsetparse-and-datetimeoffsettostring) +- [Utf8Parser and Utf8Formatter](#-and-) +- [Use DateTime(Offset).Parse as a fallback](#use-datetimeoffsetparse-as-a-fallback) +- [Use Unix epoch date format](#use-unix-epoch-date-format) #### DateTime(Offset).Parse and DateTime(Offset).ToString @@ -135,7 +137,7 @@ and then written with the If you want to read a custom or text representation with , -you can get the value of the current JSON token as a using method, then parse the value using custom logic. +you can get the value of the current JSON token as a using the method, then parse the value using custom logic. The following example shows how a custom text representation can be retrieved using the method, then parsed using : @@ -146,24 +148,23 @@ then parsed using defines the following components for -date and time representations. These components are used to define various supported levels of granularity +The extended ISO 8601-1:2019 profile implemented in defines the following components for date and time representations. These components are used to define various supported levels of granularity when parsing and formatting and representations. -| Component | Format | Description | -|-----------------|-----------------------------|---------------------------------------------------------------------------------| -| Year | "yyyy" | 0001-9999 | -| Month | "MM" | 01-12 | -| Day | "dd" | 01-28, 01-29, 01-30, 01-31 based on month/year. | -| Hour | "HH" | 00-23 | -| Minute | "mm" | 00-59 | -| Second | "ss" | 00-59 | -| Second fraction | "FFFFFFF" | Minimum of one digit, maximum of 16 digits. | -| Time offset | "K" | Either "Z" or "('+'/'-')HH':'mm". | -| Partial time | "HH':'mm':'ss[FFFFFFF]" | Time without UTC offset information. | -| Full date | "yyyy'-'MM'-'dd" | Calendar date. | -| Full time | "'Partial time'K" | UTC of day or Local time of day with the time offset between local time and UTC.| -| Date time | "'Full date''T''Full time'" | Calendar date and time of day, for example, 2019-07-26T16:59:57-05:00. | +| Component | Format | Description | +|-----------------|-------------------------|-------------------------------------------------| +| Year | "yyyy" | 0001-9999 | +| Month | "MM" | 01-12 | +| Day | "dd" | 01-28, 01-29, 01-30, 01-31 based on month/year. | +| Hour | "HH" | 00-23 | +| Minute | "mm" | 00-59 | +| Second | "ss" | 00-59 | +| Second fraction | "FFFFFFF" | Minimum of one digit, maximum of 16 digits. | +| Time offset | "K" | Either "Z" or "('+'/'-')HH':'mm". | +| Partial time | "HH':'mm':'ss[FFFFFFF]" | Time without UTC offset information. | +| Full date | "yyyy'-'MM'-'dd" | Calendar date. | +| Full time | "'Partial time'K" | UTC of day or Local time of day with the time offset between local time and UTC.| +| Date time | "'Full date''T''Full time'" | Calendar date and time of day, for example, 2019-07-26T16:59:57-05:00. | ### Support for parsing diff --git a/docs/standard/serialization/system-text-json/migrate-from-newtonsoft.md b/docs/standard/serialization/system-text-json/migrate-from-newtonsoft.md index 2f3f5e3cc8453..48c62c454d348 100644 --- a/docs/standard/serialization/system-text-json/migrate-from-newtonsoft.md +++ b/docs/standard/serialization/system-text-json/migrate-from-newtonsoft.md @@ -23,8 +23,8 @@ The `System.Text.Json` namespace provides functionality for serializing to and d * .NET Framework 4.6.2 and later versions * .NET Core 2.0, 2.1, and 2.2 ->[!TIP] -> You can use AI assistance to [migrate from `Newtonsoft.Json` with GitHub Copilot](#use-github-copilot-to-migrate). +> [!TIP] +> You can use AI assistance to [migrate from `Newtonsoft.Json`](#use-github-copilot-to-migrate). `System.Text.Json` focuses primarily on performance, security, and standards compliance. It has some key differences in default behavior and doesn't aim to have feature parity with `Newtonsoft.Json`. For some scenarios, `System.Text.Json` currently has no built-in functionality, but there are recommended workarounds. For other scenarios, workarounds are impractical. @@ -380,7 +380,7 @@ Starting in .NET 7, you can use the C# `required` modifier or the supports ISO 8601-1:2019, including the RFC 3339 profile. This format is widely adopted, unambiguous, and makes round trips precisely. To use any other format, create a custom converter. For example, the following converters serialize and deserialize JSON that uses Unix epoch format with or without a time zone offset (values such as `/Date(1590863400000-0700)/` or `/Date(1590863400000)/`): + supports ISO 8601-1:2019, including the RFC 3339 profile. This format is widely adopted, unambiguous, and makes round trips precisely. To use any other format, create a custom converter. For example, the following converters serialize and deserialize JSON that uses Unix epoch format with or without a time zone offset (values such as `/Date(1590863400000-0700)/` or `/Date(1590863400000)/`): :::code language="csharp" source="snippets/how-to-contd/csharp/CustomConverterUnixEpochDate.cs" id="ConverterOnly"::: diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CopyOptions.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CopyOptions.cs index 4e697168beb21..219ed52e68e0e 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CopyOptions.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CopyOptions.cs @@ -11,7 +11,7 @@ public class Forecast public class Program { - public static void Main() + public static void Run() { Forecast forecast = new() { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterHandleNull.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterHandleNull.cs index c390dfcf855eb..1d87b2bfb8591 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterHandleNull.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterHandleNull.cs @@ -31,7 +31,7 @@ public override void Write( public class Program { - public static void Main() + public static void Run() { string json = @"{""x"":1,""y"":2,""Description"":null}"; diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterInferredTypesToObject.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterInferredTypesToObject.cs index ecb5772bade77..aa4ef9ee74199 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterInferredTypesToObject.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterInferredTypesToObject.cs @@ -35,7 +35,7 @@ public class WeatherForecast public class Program { - public static void Main() + public static void Run() { string jsonString = """ { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterPreserveReferences.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterPreserveReferences.cs index 7ef0a06ff8a16..4768cef270e2e 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterPreserveReferences.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterPreserveReferences.cs @@ -101,7 +101,7 @@ class MyReferenceHandler : ReferenceHandler public class Program { - public static void Main() + public static void Run() { Employee tyler = new() { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterUnixEpochDate.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterUnixEpochDate.cs index beef9eaf2fd06..902e101494659 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterUnixEpochDate.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterUnixEpochDate.cs @@ -2,29 +2,50 @@ using System.Text.Json; using System.Text.Json.Serialization; using System.Text.RegularExpressions; +using Newtonsoft.Json; namespace CustomConverterUnixEpochDate { class Program { - public static void Main() + public static void STJExample(DateTimeOffset date) { var forecast = new Forecast() { - Date = DateTimeOffset.Now, + Date = date, TemperatureCelsius = 19, Summary = "warm" }; var options = new JsonSerializerOptions(); options.Converters.Add(new UnixEpochDateTimeOffsetConverter()); - options.WriteIndented = true; - string json = JsonSerializer.Serialize(forecast, options); - Console.WriteLine(json); + string json = System.Text.Json.JsonSerializer.Serialize(forecast, options); + Console.WriteLine($"System.Text.Json: {json}"); - Forecast forecastDeserialized = JsonSerializer.Deserialize(json, options)!; - Console.WriteLine($"Deserialized date = {forecastDeserialized.Date}"); + Forecast forecastDeserialized = System.Text.Json.JsonSerializer.Deserialize(json, options)!; + Console.WriteLine($"System.Text.Json deserialized date = {forecastDeserialized.Date}"); + } + + public static void NewtonsoftExample(DateTimeOffset date) + { + var forecast = new Forecast() + { + Date = date, + TemperatureCelsius = 19, + Summary = "warm" + }; + + var settings = new JsonSerializerSettings + { + DateFormatHandling = DateFormatHandling.MicrosoftDateFormat, + }; + + string json = JsonConvert.SerializeObject(forecast, settings); + Console.WriteLine($"{Environment.NewLine}Newtonsoft: {json}"); + + Forecast forecastDeserialized = JsonConvert.DeserializeObject(json, settings)!; + Console.WriteLine($"Newtonsoft deserialized date = {forecastDeserialized.Date}"); } } @@ -36,23 +57,28 @@ public class Forecast } // - sealed class UnixEpochDateTimeOffsetConverter : JsonConverter + sealed class UnixEpochDateTimeOffsetConverter : System.Text.Json.Serialization.JsonConverter { static readonly DateTimeOffset s_epoch = new(1970, 1, 1, 0, 0, 0, TimeSpan.Zero); - static readonly Regex s_regex = new("^/Date\\(([+-]*\\d+)([+-])(\\d{2})(\\d{2})\\)/$", RegexOptions.CultureInvariant); + static readonly Regex s_regex = new( + "^/Date\\(([+-]*\\d+)([+-])(\\d{2})(\\d{2})\\)/$", + RegexOptions.CultureInvariant); - public override DateTimeOffset Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public override DateTimeOffset Read( + ref Utf8JsonReader reader, + Type typeToConvert, + JsonSerializerOptions options) { string formatted = reader.GetString()!; Match match = s_regex.Match(formatted); if ( !match.Success - || !long.TryParse(match.Groups[1].Value, System.Globalization.NumberStyles.Integer, CultureInfo.InvariantCulture, out long unixTime) - || !int.TryParse(match.Groups[3].Value, System.Globalization.NumberStyles.Integer, CultureInfo.InvariantCulture, out int hours) - || !int.TryParse(match.Groups[4].Value, System.Globalization.NumberStyles.Integer, CultureInfo.InvariantCulture, out int minutes)) + || !long.TryParse(match.Groups[1].Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out long unixTime) + || !int.TryParse(match.Groups[3].Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out int hours) + || !int.TryParse(match.Groups[4].Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out int minutes)) { - throw new JsonException(); + throw new System.Text.Json.JsonException(); } int sign = match.Groups[2].Value[0] == '+' ? 1 : -1; @@ -61,12 +87,18 @@ public override DateTimeOffset Read(ref Utf8JsonReader reader, Type typeToConver return s_epoch.AddMilliseconds(unixTime).ToOffset(utcOffset); } - public override void Write(Utf8JsonWriter writer, DateTimeOffset value, JsonSerializerOptions options) + public override void Write( + Utf8JsonWriter writer, + DateTimeOffset value, + JsonSerializerOptions options) { - long unixTime = Convert.ToInt64((value - s_epoch).TotalMilliseconds); + long unixTime = value.ToUnixTimeMilliseconds(); + TimeSpan utcOffset = value.Offset; - string formatted = string.Create(CultureInfo.InvariantCulture, $"/Date({unixTime}{(utcOffset >= TimeSpan.Zero ? "+" : "-")}{utcOffset:hhmm})/"); + string formatted = string.Create( + CultureInfo.InvariantCulture, + $"/Date({unixTime}{(utcOffset >= TimeSpan.Zero ? "+" : "-")}{utcOffset:hhmm})/"); writer.WriteStringValue(formatted); } diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterUnixEpochDateNoZone.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterUnixEpochDateNoZone.cs index a7dc51737d5f1..2912a86e7cda9 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterUnixEpochDateNoZone.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/CustomConverterUnixEpochDateNoZone.cs @@ -1,30 +1,50 @@ using System.Globalization; using System.Text.Json; -using System.Text.Json.Serialization; using System.Text.RegularExpressions; +using Newtonsoft.Json; namespace CustomConverterUnixEpochDateNoZone { class Program { - public static void Main() + public static void STJExample(DateTime date) { var forecast = new Forecast() { - Date = DateTime.Now, + Date = date, TemperatureCelsius = 19, Summary = "warm" }; var options = new JsonSerializerOptions(); options.Converters.Add(new UnixEpochDateTimeConverter()); - options.WriteIndented = true; - string json = JsonSerializer.Serialize(forecast, options); - Console.WriteLine(json); + string json = System.Text.Json.JsonSerializer.Serialize(forecast, options); + Console.WriteLine($"System.Text.Json: {json}"); - Forecast forecastDeserialized = JsonSerializer.Deserialize(json, options)!; - Console.WriteLine($"Deserialized date = {forecastDeserialized.Date}"); + Forecast forecastDeserialized = System.Text.Json.JsonSerializer.Deserialize(json, options)!; + Console.WriteLine($"System.Text.Json deserialized date = {forecastDeserialized.Date}"); + } + + public static void NewtonsoftExample(DateTime date) + { + var forecast = new Forecast() + { + Date = date, + TemperatureCelsius = 19, + Summary = "warm" + }; + + var settings = new JsonSerializerSettings + { + DateFormatHandling = DateFormatHandling.MicrosoftDateFormat, + }; + + string json = JsonConvert.SerializeObject(forecast, settings); + Console.WriteLine($"{Environment.NewLine}Newtonsoft: {json}"); + + Forecast forecastDeserialized = JsonConvert.DeserializeObject(json, settings)!; + Console.WriteLine($"Newtonsoft deserialized date = {forecastDeserialized.Date}"); } } @@ -36,29 +56,37 @@ public class Forecast } // - sealed class UnixEpochDateTimeConverter : JsonConverter + sealed class UnixEpochDateTimeConverter : System.Text.Json.Serialization.JsonConverter { static readonly DateTime s_epoch = new(1970, 1, 1, 0, 0, 0); - static readonly Regex s_regex = new("^/Date\\(([+-]*\\d+)\\)/$", RegexOptions.CultureInvariant); + static readonly Regex s_regex = new( + "^/Date\\(([+-]*\\d+)\\)/$", + RegexOptions.CultureInvariant); - public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public override DateTime Read( + ref Utf8JsonReader reader, + Type typeToConvert, + JsonSerializerOptions options) { string formatted = reader.GetString()!; Match match = s_regex.Match(formatted); if ( - !match.Success - || !long.TryParse(match.Groups[1].Value, System.Globalization.NumberStyles.Integer, CultureInfo.InvariantCulture, out long unixTime)) + !match.Success + || !long.TryParse(match.Groups[1].Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out long unixTime)) { - throw new JsonException(); + throw new System.Text.Json.JsonException(); } return s_epoch.AddMilliseconds(unixTime); } - public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options) + public override void Write( + Utf8JsonWriter writer, + DateTime value, + JsonSerializerOptions options) { - long unixTime = Convert.ToInt64((value - s_epoch).TotalMilliseconds); + long unixTime = (value - s_epoch).Ticks / TimeSpan.TicksPerMillisecond; string formatted = string.Create(CultureInfo.InvariantCulture, $"/Date({unixTime})/"); writer.WriteStringValue(formatted); diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/Fields.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/Fields.cs index 7d8e9268a532b..9d3b719d0099e 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/Fields.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/Fields.cs @@ -22,7 +22,7 @@ public class Forecast2 public class Program { - public static void Main() + public static void Run() { string json = """ { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/GuidReferenceResolverExample.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/GuidReferenceResolverExample.cs index a44b95bc98c08..e0f7046ff0e34 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/GuidReferenceResolverExample.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/GuidReferenceResolverExample.cs @@ -49,7 +49,7 @@ public override void AddReference(string reference, object value) static class Program { - public static void Main() + public static void Run() { Person tyler = new() { Id = Guid.NewGuid(), Name = "Tyler" }; Person adrian = new() { Id = Guid.NewGuid(), Name = "Adrian" }; diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/HttpClientExtensionMethods.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/HttpClientExtensionMethods.cs index 968839a06cea7..ed3e74c146d99 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/HttpClientExtensionMethods.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/HttpClientExtensionMethods.cs @@ -12,7 +12,7 @@ public class User public class Program { - public static async Task Main() + public static async Task Run() { using HttpClient client = new() { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/IgnoreNullOnSerialize.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/IgnoreNullOnSerialize.cs index bbdfbd68efe5d..13c4d6358a91e 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/IgnoreNullOnSerialize.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/IgnoreNullOnSerialize.cs @@ -12,7 +12,7 @@ public class Forecast public class Program { - public static void Main() + public static void Run() { Forecast forecast = new() { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/IgnoreValueDefaultOnSerialize.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/IgnoreValueDefaultOnSerialize.cs index 337248b555fd5..3a72ada9faf89 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/IgnoreValueDefaultOnSerialize.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/IgnoreValueDefaultOnSerialize.cs @@ -12,7 +12,7 @@ public class Forecast public class Program { - public static void Main() + public static void Run() { Forecast forecast = new() { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/ImmutableTypes.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/ImmutableTypes.cs index d0ae803c2eae8..ae6af185849ce 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/ImmutableTypes.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/ImmutableTypes.cs @@ -16,7 +16,7 @@ public Forecast(DateTime date, int temperatureC, string summary) => public class Program { - public static void Main() + public static void Run() { string json = """ { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/ImmutableTypesCtorParms.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/ImmutableTypesCtorParms.cs index c71418fa67b20..51a4e7c5dfa31 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/ImmutableTypesCtorParms.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/ImmutableTypesCtorParms.cs @@ -17,7 +17,7 @@ public Forecast(DateTime date, int temperatureC, string summary) => public class Program { - public static void Main() + public static void Run() { string json = """ { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/JsonIgnoreAttributeExample.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/JsonIgnoreAttributeExample.cs index efacab04b91d8..e08b79ac15124 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/JsonIgnoreAttributeExample.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/JsonIgnoreAttributeExample.cs @@ -17,7 +17,7 @@ public class Forecast public class Program { - public static void Main() + public static void Run() { Forecast forecast = new() { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/NonPublicAccessors.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/NonPublicAccessors.cs index fbd9fd74e9ac5..ad619605696ec 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/NonPublicAccessors.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/NonPublicAccessors.cs @@ -16,7 +16,7 @@ public class Forecast public class Program { - public static void Main() + public static void Run() { string json = """ { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/NonStringKeyDictionary.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/NonStringKeyDictionary.cs index b89446c6e505e..acd5c31ac1027 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/NonStringKeyDictionary.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/NonStringKeyDictionary.cs @@ -4,7 +4,7 @@ namespace NonStringKeyDictionary { public class Program { - public static void Main() + public static void Run() { Dictionary numbers = new() { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/OptionsDefaults.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/OptionsDefaults.cs index 62ee51e11ae3c..b8fc04ed30a91 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/OptionsDefaults.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/OptionsDefaults.cs @@ -11,7 +11,7 @@ public class Forecast public class Program { - public static void Main() + public static void Run() { Forecast forecast = new() { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/PreserveReferences.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/PreserveReferences.cs index 3319ae7b7c04a..0513028610f99 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/PreserveReferences.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/PreserveReferences.cs @@ -12,7 +12,7 @@ public class Employee public class Program { - public static void Main() + public static void Run() { Employee tyler = new() { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/PreserveReferencesMultipleCalls.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/PreserveReferencesMultipleCalls.cs index f22ef84056f03..cb36f09fd9854 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/PreserveReferencesMultipleCalls.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/PreserveReferencesMultipleCalls.cs @@ -68,7 +68,7 @@ class MyReferenceHandler : ReferenceHandler public class Program { - public static void Main() + public static void Run() { Employee tyler = new() { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/Program.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/Program.cs index 8cb05c0c4dbf4..84b4a05a6c5bf 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/Program.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/Program.cs @@ -5,87 +5,91 @@ class Program static async Task Main(string[] args) { Console.WriteLine("======== Custom converter Unix Epoch DateTimeOffset ========="); - CustomConverterUnixEpochDate.Program.Main(); + DateTimeOffset date = DateTimeOffset.Now; + CustomConverterUnixEpochDate.Program.STJExample(date); + CustomConverterUnixEpochDate.Program.NewtonsoftExample(date); Console.WriteLine(); Console.WriteLine("======== Custom converter Unix Epoch DateTime ========="); - CustomConverterUnixEpochDateNoZone.Program.Main(); + DateTime date2 = DateTime.Now; + CustomConverterUnixEpochDateNoZone.Program.STJExample(date2); + CustomConverterUnixEpochDateNoZone.Program.NewtonsoftExample(date2); Console.WriteLine(); Console.WriteLine("======== Preserve references ========="); - PreserveReferences.Program.Main(); + PreserveReferences.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Custom converter Preserve references ========="); - CustomConverterPreserveReferences.Program.Main(); + CustomConverterPreserveReferences.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Preserve references Multiple calls ========="); - PreserveReferencesMultipleCalls.Program.Main(); + PreserveReferencesMultipleCalls.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Immutable types ========="); - ImmutableTypes.Program.Main(); + ImmutableTypes.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Immutable types ========="); - ImmutableTypesCtorParms.Program.Main(); + ImmutableTypesCtorParms.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Record support ========="); - Records.Program.Main(); + Records.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Field support ========="); - Fields.Program.Main(); + Fields.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Non-string key dictionary ========="); - NonStringKeyDictionary.Program.Main(); + NonStringKeyDictionary.Program.Run(); Console.WriteLine(); Console.WriteLine("======== HttpClient extension methods ========="); - await HttpClientExtensionMethods.Program.Main(); + await HttpClientExtensionMethods.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Custom converter handle null ========="); - CustomConverterHandleNull.Program.Main(); + CustomConverterHandleNull.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Custom converter inferred types to object ========="); - CustomConverterInferredTypesToObject.Program.Main(); + CustomConverterInferredTypesToObject.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Ignore value type default on serialize ========="); - IgnoreValueDefaultOnSerialize.Program.Main(); + IgnoreValueDefaultOnSerialize.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Ignore null on serialize ========="); - IgnoreNullOnSerialize.Program.Main(); + IgnoreNullOnSerialize.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Conditionally ignore selected properties on serialize ========="); - JsonIgnoreAttributeExample.Program.Main(); + JsonIgnoreAttributeExample.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Non-public accessors ========="); - NonPublicAccessors.Program.Main(); + NonPublicAccessors.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Copy options instance ========="); - CopyOptions.Program.Main(); + CopyOptions.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Create options instance with specified defaults ========="); - OptionsDefaults.Program.Main(); + OptionsDefaults.Program.Run(); Console.WriteLine(); Console.WriteLine("======== Quoted numbers ========="); - QuotedNumbers.Program.Main(); + QuotedNumbers.Program.Run(); Console.WriteLine(); Console.WriteLine("======== GuidReferenceResolver ========="); - GuidReferenceResolverExample.Program.Main(); + GuidReferenceResolverExample.Program.Run(); Console.WriteLine(); } } diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/QuotedNumbers.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/QuotedNumbers.cs index 0c7a90b31fe45..1c83bb3c05020 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/QuotedNumbers.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/QuotedNumbers.cs @@ -12,7 +12,7 @@ public class Forecast public class Program { - public static void Main() + public static void Run() { Forecast forecast = new() { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/Records.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/Records.cs index eb38cdf5b8b39..06797906d96d7 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/Records.cs +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/Records.cs @@ -9,7 +9,7 @@ public record Forecast(DateTime Date, int TemperatureC) public class Program { - public static void Main() + public static void Run() { Forecast forecast = new(DateTime.Now, 40) { diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/SystemTextJsonHowTo.csproj b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/SystemTextJsonHowTo.csproj index cd08d4e634e32..71d1233f72217 100644 --- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/SystemTextJsonHowTo.csproj +++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/SystemTextJsonHowTo.csproj @@ -8,4 +8,8 @@ enable + + + +