VB.net 错误 BC30652 和 BC36593 中的 LinqToTwitter
LinqToTwitter in VB.net errors BC30652 and BC36593
我正在尝试使用 vb .net 中的 LinqToTwitter 包来捕获推文,使用流式选项实时捕获它们。
我遇到了两个错误,我已尝试通过多种方式更正,进行了多次导入,但都没有成功。
错误是:
第 12、14、21 和 23 行 - 需要引用包含类型“[Object]”的程序集 'System.Runtime, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'。将一个添加到您的项目中。
第 23 行 - 'TwitterQueryable (Of Streaming)' 类型的表达式不可查询。确保您没有缺少 LINQ 提供程序的程序集引用和/或命名空间导入。
谢谢!
Imports System
Imports System.Data
Imports System.IO
Imports System.Linq
Imports System.Xml.Linq
Imports System.Data.Linq
Imports LinqToTwitter
Public Class compTwitter
Public Async Sub Stream_Twitter()
Dim arquivo As StreamWriter
arquivo = My.Computer.FileSystem.OpenTextFileWriter("C:\TesteTwitterDanilo\test25.txt", True)
Dim twAuth = New SingleUserAuthorizer() With {.CredentialStore = New SingleUserInMemoryCredentialStore()}
With twAuth.CredentialStore
.ConsumerKey = glbTwitterConsumerKey
.ConsumerSecret = glbTwitterConsumerSecret
.OAuthToken = glbTwitterAccessToken
.OAuthTokenSecret = glbTwitterAccessTokenSecret
End With
Dim twitterCtx As TwitterContext = New TwitterContext(twAuth)
Dim Response As List(Of Streaming) = Await (From stm In twitterCtx.Streaming()
Where stm.Language = "pt" AndAlso stm.Type = StreamingType.Filter AndAlso stm.Track = "Twitter"
Select stm).StartAsync(Function(stm) Escreve_no_Arquivo(arquivo, stm))
arquivo.Close()
End Sub
End Class
根据您的评论,原因是您正试图 运行 在 Web 应用程序中使用它。 Web 应用程序是无状态的。这意味着当用户发出请求时,Web 应用程序实例化页面、处理请求,然后允许对页面(和其他对象)实例进行垃圾回收。翻译成你的情况,用户请求页面,它实例化 LINQ to Twitter 对象(包括流),并且 returns。那些 LINQ to Twitter 实例变得有资格进行垃圾回收,奇怪的事情发生了。
流式代码需要 运行 在维护状态的应用程序中,例如控制台应用程序。如果您需要它持续 运行,您可以考虑 Windows 服务或一直保持 运行ning 的云服务。
我正在尝试使用 vb .net 中的 LinqToTwitter 包来捕获推文,使用流式选项实时捕获它们。
我遇到了两个错误,我已尝试通过多种方式更正,进行了多次导入,但都没有成功。
错误是:
第 12、14、21 和 23 行 - 需要引用包含类型“[Object]”的程序集 'System.Runtime, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'。将一个添加到您的项目中。
第 23 行 - 'TwitterQueryable (Of Streaming)' 类型的表达式不可查询。确保您没有缺少 LINQ 提供程序的程序集引用和/或命名空间导入。
谢谢!
Imports System
Imports System.Data
Imports System.IO
Imports System.Linq
Imports System.Xml.Linq
Imports System.Data.Linq
Imports LinqToTwitter
Public Class compTwitter
Public Async Sub Stream_Twitter()
Dim arquivo As StreamWriter
arquivo = My.Computer.FileSystem.OpenTextFileWriter("C:\TesteTwitterDanilo\test25.txt", True)
Dim twAuth = New SingleUserAuthorizer() With {.CredentialStore = New SingleUserInMemoryCredentialStore()}
With twAuth.CredentialStore
.ConsumerKey = glbTwitterConsumerKey
.ConsumerSecret = glbTwitterConsumerSecret
.OAuthToken = glbTwitterAccessToken
.OAuthTokenSecret = glbTwitterAccessTokenSecret
End With
Dim twitterCtx As TwitterContext = New TwitterContext(twAuth)
Dim Response As List(Of Streaming) = Await (From stm In twitterCtx.Streaming()
Where stm.Language = "pt" AndAlso stm.Type = StreamingType.Filter AndAlso stm.Track = "Twitter"
Select stm).StartAsync(Function(stm) Escreve_no_Arquivo(arquivo, stm))
arquivo.Close()
End Sub
End Class
根据您的评论,原因是您正试图 运行 在 Web 应用程序中使用它。 Web 应用程序是无状态的。这意味着当用户发出请求时,Web 应用程序实例化页面、处理请求,然后允许对页面(和其他对象)实例进行垃圾回收。翻译成你的情况,用户请求页面,它实例化 LINQ to Twitter 对象(包括流),并且 returns。那些 LINQ to Twitter 实例变得有资格进行垃圾回收,奇怪的事情发生了。
流式代码需要 运行 在维护状态的应用程序中,例如控制台应用程序。如果您需要它持续 运行,您可以考虑 Windows 服务或一直保持 运行ning 的云服务。