c# - 找不到类型或命名空间名称 TSocket apache thrift C# Visual Studio 2019

标签 c# thrift

已安装的 thrift 软件包和 Thrift.dll 引用的屏幕截图:

Screenshot of installed thrift package and Thrift.dll reference

我正在尝试使用 C# 在 Visual Studio 2019 中创建一个简单的 thrift 客户端。我已经生成了 c# thrift 绑定(bind)和其他所有内容。但是,我收到“找不到类型或命名空间名称“TSocket””。我没有其他错误。这是我的设置代码的片段:

// imports, namespaces
using System;
using System.Net;
using Thrift;
using Thrift.Transport;
using Thrift.Protocol;
  
TTransport socket1 = new TSocket("hostname", port);
TTransport transport = new TFramedTransport(socket1);
                
(more stuff .....)

我对客户端内对 Thrift 模块的其他引用没有其他问题。它只是无法以某种方式找到“TSocket”。我对 C# 和 thrift 非常陌生。

我正在使用 thrift 0.14.1 并使用 NuGet 包插件 Visual Studio 2019 安装它。

可能是什么问题?谢谢。 screenshot of error

查看后,“TSocket”似乎甚至没有列在 Transport 下,如下面的屏幕截图所示。 screenshot of available modules under Thrift Transport

最佳答案

Thrift 0.14 更改了一些名称和嵌套命名空间结构。原来的 Thrift.Transport.TSocket 现在是 Thrift.Transport.Client.TSocketTransport。看看交换是否可以解决问题。

如果没有检查您的项目对 Thrift 库的引用。像这样的东西可能会有所帮助(引用“Apache Thrift 程序员指南”):

“要添加 C# Apache Thrift 库引用,请在解决方案资源管理器中右键单击项目中的引用项,然后选择“添加引用”。接下来使用“浏览...”按钮找到 Thrift.dll thrift/lib/csharp/src/bin/Debug(或任何地方)。确保“引用管理器”对话框中的 Thrift.dll 条目旁边有一个检查,然后单击“确定”。短暂暂停后,Intelisense 错误应该会清除。”

...或使用包管理器:

“要添加 Thrift.dll 引用,您只需运行 PackageManager 安装命令即可:

PM> Install-Package -Prerelease ApacheThrift -ProjectName <your proj name here>

'ApacheThrift 1.0.0-dev' already installed.
Adding 'ApacheThrift 1.0.0-dev' to tradeServer.
Successfully added 'ApacheThrift 1.0.0-dev' to tradeServer.
"

关于c# - 找不到类型或命名空间名称 TSocket apache thrift C# Visual Studio 2019,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67225502/

相关文章:

go - 在 thrift 生成的代码中控制 golang 注释

c# - Mongo c# 驱动为泛型自定义序列化

python - python 中的 Thrift TTransportException

c# - 带搜索框的多线程

c# - 在 C# XNA 游戏中用鼠标单击时移动图像

rpc - 如何实现通用的 Thrift Proxy?

thrift - 如何安装 Apache thrift 0.13.0

Thrift可以使用http,但它是二进制通信协议(protocol)?

c# - 在C#中丢弃的优点是什么

c# - 最小化 "new Email"对话框