找不到类型或命名空间名称 TSocket apache thrift C# Visual Studio 2019
Type or namespace name TSocket could not be found apache thrift C# Visual Studio 2019
已安装的 thrift 包和 Thrift.dll 参考的屏幕截图:
我正在尝试使用 C# 在 Visual Studio 2019 年创建一个简单的节俭客户端。我已经生成了 c# thrift 绑定和其他所有内容。但是,我收到“找不到类型或名称空间名称“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 .....)
我对客户端中节俭模块的其他引用没有其他问题。它只是无法以某种方式找到“TSocket”。我是 c# 和 thrift 的超级新手。
我正在使用 thrift 0.14.1
并已使用 NuGet 程序包附加组件安装它 Visual Studio 2019。
可能是什么问题?谢谢。
screenshot of error
查看后,似乎“TSocket”甚至没有列在传输下,如下面的屏幕截图所示。
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.
"
已安装的 thrift 包和 Thrift.dll 参考的屏幕截图:
我正在尝试使用 C# 在 Visual Studio 2019 年创建一个简单的节俭客户端。我已经生成了 c# thrift 绑定和其他所有内容。但是,我收到“找不到类型或名称空间名称“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 .....)
我对客户端中节俭模块的其他引用没有其他问题。它只是无法以某种方式找到“TSocket”。我是 c# 和 thrift 的超级新手。
我正在使用 thrift 0.14.1
并已使用 NuGet 程序包附加组件安装它 Visual Studio 2019。
可能是什么问题?谢谢。 screenshot of error
查看后,似乎“TSocket”甚至没有列在传输下,如下面的屏幕截图所示。 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.
"