Ich möchte gRPC mit .NET Core 3 in einer asp.net Core-Webanwendung verwenden. Wie generiere ich die erforderliche .proto-Datei aus einer vorhandenen C # -Klasse und Modellobjekten? Ich möchte keine .proto-Datei neu schreiben, die den vorhandenen Code widerspiegelt. Ich möchte, dass die .proto-Datei automatisch aus den Klassen- und Modellobjekten generiert wird.
Ich rufe diese Methode auf, um meine Serviceklasse zu registrieren.
builder.MapGrpcService<MyGrpcService>();
public class MyGrpcService
{
public Task<string> ServiceMethod(ModelObject model, ServerCallContext context)
{
return Task.FromResult("It Worked");
}
}
ModelObject
hat [DataContract]
und [DataMember]
mit Auftragsattributen.
Ist das möglich? Jedes Beispiel, das ich online sehe, beginnt mit einer .proto
Datei. Ich habe meine gewünschten Servicemethoden bereits in der MyGrpcService
Klasse definiert. Aber vielleicht ist dies nur rückwärts zu der üblichen Vorgehensweise ...
So etwas wie das alte .NET-Remoting ist ideal, wenn Sie einfach von einem Remote-Endpunkt aus nach einer Schnittstelle fragen können, die auf magische Weise gRPC
zum Hin- und Herkommunizieren verwendet wird, aber vielleicht ist das eine zu vereinfachte Ansicht.