Hintergrundproblem:
Ich habe ein Dokument-POCO, das ich mit der CosmosDbOutput-Bindungserweiterung (neueste Version, Version 4) verwenden möchte.
Ich bevorzuge es, meine POCO-Eigenschaftsnamen in PascaLCase und meine Cosmos-/Json-Dokumente jeweils in camelCase zu haben. Ich kann jedoch nicht die richtige Möglichkeit finden, die Serialisierungsoptionen zu ändern, damit dies funktioniert.
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Http;
using Microsoft.Extensions.Logging;
using System.Net;
using FromBodyAttribute = Microsoft.Azure.Functions.Worker.Http.FromBodyAttribute;
namespace FunctionCrudSample;
// Function
[Function(nameof(CreatePascalCase))]
public async Task CreatePascalCase(
[HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequestData req,
[FromBody] MyDocumentPascalCase myDocument,
FunctionContext executionContext
)
{
var logger = executionContext.GetLogger(nameof(Api));
logger.LogInformation("C# HTTP trigger function processed a request.");
var response = req.CreateResponse(HttpStatusCode.OK);
await response.WriteAsJsonAsync(myDocument);
return new() { Response = response, Document = myDocument };
}
// Multi-Return type
public class CreateResponsePascalCase
{
[HttpResult]
public required HttpResponseData Response { get; set; }
[CosmosDBOutput(cosmosDbName, cosmosContainerName, Connection = connectionString, CreateIfNotExists = true, PartitionKey = "/id")]
public MyDocumentPascalCase? Document { get; set; }
}
// POCO
public class MyDocumentPascalCase
{
public string? Id { get; set; }
public string? Message { get; set; }
}
Was ich versucht habe
1. Ändern Sie das POCO so, dass es die Eigenschaftsnamen „camelCase“ verwendet.
Das funktioniert, aber wieder. Ich würde lieber PascalCase verwenden. Ganz zu schweigen davon, dass die Verwendung von Eigenschaftsnamen in Kleinbuchstaben gegen den Codestil IDE1006 verstößt.
public class MyDocumentCamelCase
{
public string? id { get; set; }
public string? message { get; set; }
}
2. Konfigurieren von IOptions und ConfigureCosmosDBExtensionOptions()
Ich habe mit einer oder beiden dieser Konfigurationsoptionen in Program.cs keinen Erfolg festgestellt
Ganz zu schweigen davon, dass sie keine Papiere haben. Ich habe ein paar Stunden im Dotnet-Worker-Laufzeit-Repository verbracht.
Hintergrundproblem: Ich habe ein Dokument-POCO, das ich mit der CosmosDbOutput-Bindungserweiterung (neueste Version, Version 4) verwenden möchte. Ich bevorzuge es, meine POCO-Eigenschaftsnamen in PascaLCase und meine Cosmos-/Json-Dokumente jeweils in camelCase zu haben. Ich kann jedoch nicht die richtige Möglichkeit finden, die Serialisierungsoptionen zu ändern, damit dies funktioniert. [code]using Microsoft.Azure.Functions.Worker; using Microsoft.Azure.Functions.Worker.Http; using Microsoft.Extensions.Logging; using System.Net; using FromBodyAttribute = Microsoft.Azure.Functions.Worker.Http.FromBodyAttribute;
namespace FunctionCrudSample;
// Function [Function(nameof(CreatePascalCase))] public async Task CreatePascalCase( [HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequestData req, [FromBody] MyDocumentPascalCase myDocument, FunctionContext executionContext ) { var logger = executionContext.GetLogger(nameof(Api)); logger.LogInformation("C# HTTP trigger function processed a request."); var response = req.CreateResponse(HttpStatusCode.OK); await response.WriteAsJsonAsync(myDocument); return new() { Response = response, Document = myDocument }; }
// Multi-Return type public class CreateResponsePascalCase { [HttpResult] public required HttpResponseData Response { get; set; }
// POCO public class MyDocumentPascalCase { public string? Id { get; set; } public string? Message { get; set; } } [/code] Was ich versucht habe 1. Ändern Sie das POCO so, dass es die Eigenschaftsnamen „camelCase“ verwendet. Das funktioniert, aber wieder. Ich würde lieber PascalCase verwenden. Ganz zu schweigen davon, dass die Verwendung von Eigenschaftsnamen in Kleinbuchstaben gegen den Codestil IDE1006 verstößt. [code]public class MyDocumentCamelCase { public string? id { get; set; } public string? message { get; set; } } [/code] 2. Konfigurieren von IOptions und ConfigureCosmosDBExtensionOptions() Ich habe mit einer oder beiden dieser Konfigurationsoptionen in Program.cs keinen Erfolg festgestellt Ganz zu schweigen davon, dass sie keine Papiere haben. Ich habe ein paar Stunden im Dotnet-Worker-Laufzeit-Repository verbracht. [code]using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options;
var host = new HostBuilder().ConfigureFunctionsWorkerDefaults(options => { options.Services.AddOptions().Configure((cosmos, worker) => { cosmos.ClientOptions.SerializerOptions.PropertyNamingPolicy = CosmosPropertyNamingPolicy.CamelCase; });
Ich folge diesem Repo und
Wie kann ich MAPNGRAPHQL () nenne mapgraphql ()? Ich habe nur Zugriff auf IOHost :
public class Program
{
public static void Main()
{
var host = new HostBuilder()...
Ich habe eine React-Anwendung mit Stripe-Zahlungen. Ich möchte, dass Benutzer auf der Registerkarte „Zahlungen“ in den Einstellungen ihre Zahlungsmethoden anzeigen, hinzufügen, bearbeiten und...
Ich versuche, das Versandgewicht über „functions.php“ in woocommerce mit add_filter('woocommerce_structured_data_product') zum Schema hinzuzufügen.
Ich habe derzeit
if ( $product_weight ) {
$markup...
Ich arbeite an einer Electron-App, die auf gehostet wird, und sie muss API-Anfragen an eine der folgenden Adressen stellen:
Localhost-API :
Wolke Funktion :