Я установил бережливость как для моей библиотеки, так и для сервера; используя NuGet.«TProtocol» не содержит определения для «IncrementRecursionDepth»
У меня есть очень простой бережливость файл, который я скомпилировал его с помощью следующей команды:
thrift.exe -r --gen csharp node.thrift
node.thrift имеет три линии:
service Server {
string ping()
}
Я получаю ошибки от Server.cs, сгенерированные бережливость компилятор.
«TProtocol» не содержит определение для
образца линии «» IncrementRecursionDepth метания ошибки:
public void Read (TProtocol iprot)
{
iprot.IncrementRecursionDepth(); //this line has the error
Я гугл для него, но не нашел никаких результатов.
обновление: Если удалить строки метательные ошибку, библиотека компилирует и сервер работает как и ожидалось, я не знаю, если я буду сталкиваться с ошибками в будущем или нет, Что с рекурсии? !
важный момент: Я скомпилировать файл бережливость, используя исполняемый файл я скачал из http://www.apache.org/dyn/closer.cgi?path=/thrift/0.9.3/thrift-0.9.3.exe
. версия является 0.9.3 но библиотека бережливость установлен NuGet является 0.9.1.3
Я не мог найти пакеты NuGet для 0.9.3, есть ли способ сделать это самостоятельно (используя простой мастер)? –
Все [официальные пакеты перечислены здесь] (https://thrift.apache.org/lib/), а также некоторые сторонние. [Это значение 0.9.3 для C#] (https://www.nuget.org/packages/ApacheThrift/0.9.3). Если компилятор Thrift отсутствует в этом пакете (я не уверен, но у IIRC была некоторая проблема с отсутствием EXE), вы можете [получить его здесь] (https://thrift.apache.org/download). – JensG
Я искал неправильный пакет, пожалуйста, включите его в свой ответ: Чтобы установить последний официальный пакет из NuGet, выполните поиск ApacheThrift. –