Я хочу создать простой проект WPF Core, gRP C. Этот «код» прекрасно работает в моем приложении. NET Core Console, однако WPF кажется чем-то особенным.
Proto File
syntax = "proto3";
option csharp_namespace = "MyProtoNamespace";
package greet;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply);
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings.
message HelloReply {
string message = 1;
}
gRP C Сервер
создал шаблон по умолчанию в Visual Studio 2019 ( использует. NET Core 3.1 )
Консольное приложение (работает отлично)
создано по умолчанию. NET Базовое консольное приложение -> добавило файл Proto с сервера на клиент и изменено gRP C Классы-заглушки на Только для клиента
использует:. NET Core 3.1
имеет следующие NuGets:
- Grp c .Tools
- Grp c. Net .Client
- Google.Protobuf
код
static async Task Main(string[] args) // works perfectly
{
using var channel = GrpcChannel.ForAddress("https://localhost:5001");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(new HelloRequest { Name = "GreeterClient" });
System.Console.WriteLine("Greeting: " + reply.Message);
System.Console.WriteLine("Press any key to exit...");
System.Console.ReadKey();
}
WPF. NET Core
создан по умолчанию WPF. NET Базовое приложение -> добавлено Прото-файл с сервера на клиент и изменил классы заглушки gRP C на только для клиента
использует:. NET Core 3.1
имеет следующие NuGets:
- Grp c .Tools
- Grp c. Net. Клиент
- Google.Protobuf
код
Loaded += async delegate
{
using var channel = GrpcChannel.ForAddress("https://localhost:5001");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(new HelloRequest { Name = "GreeterClient" });
};
ПРОБЛЕМА
Могу НЕ создавать приложение WPF
ошибки:
Тип или имя пространства имен 'MyProtoNamespace' не существует в пространстве имен 'MyWPFNameSpace' (у вас отсутствует ссылка на сборку?)