All checks were successful
Publish NuGets / build (release) Successful in 40s
Replace ProtoFileSourceGenerator and WriteProtoFileTask with a new GenerateProtoFileTask that creates its own Roslyn compilation. This solves the timing issue where source generators run too late for Grpc.Tools to process the generated proto files. The new task runs after ResolveAssemblyReferences but before _gRPC_GetProtoc and CoreCompile, ensuring the proto file exists when Grpc.Tools needs it. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
62 lines
1.2 KiB
Protocol Buffer
62 lines
1.2 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
option csharp_namespace = "Svrnty.Sample.Grpc";
|
|
|
|
package cqrs;
|
|
|
|
// Command service for CQRS operations
|
|
service CommandService {
|
|
// AddUserCommand operation
|
|
rpc AddUser (AddUserCommandRequest) returns (AddUserCommandResponse);
|
|
|
|
// RemoveUserCommand operation
|
|
rpc RemoveUser (RemoveUserCommandRequest) returns (RemoveUserCommandResponse);
|
|
|
|
}
|
|
|
|
// Query service for CQRS operations
|
|
service QueryService {
|
|
// FetchUserQuery operation
|
|
rpc FetchUser (FetchUserQueryRequest) returns (FetchUserQueryResponse);
|
|
|
|
}
|
|
|
|
// Request message for AddUserCommand
|
|
message AddUserCommandRequest {
|
|
string name = 1;
|
|
string email = 2;
|
|
int32 age = 3;
|
|
}
|
|
|
|
// Response message for AddUserCommand
|
|
message AddUserCommandResponse {
|
|
int32 result = 1;
|
|
}
|
|
|
|
// Request message for RemoveUserCommand
|
|
message RemoveUserCommandRequest {
|
|
int32 user_id = 1;
|
|
}
|
|
|
|
// Response message for RemoveUserCommand
|
|
message RemoveUserCommandResponse {
|
|
}
|
|
|
|
// Request message for FetchUserQuery
|
|
message FetchUserQueryRequest {
|
|
int32 user_id = 1;
|
|
}
|
|
|
|
// Response message for FetchUserQuery
|
|
message FetchUserQueryResponse {
|
|
User result = 1;
|
|
}
|
|
|
|
// User entity
|
|
message User {
|
|
int32 id = 1;
|
|
string name = 2;
|
|
string email = 3;
|
|
}
|
|
|