C# Twitterizer-对象引用未设置为对象的实例

C# Twitterizer-对象引用未设置为对象的实例,c#,asp.net,twitterizer,C#,Asp.net,Twitterizer,我注意到Twitterizer存在一个问题,它一直工作正常,直到我的客户向她的帐户添加了一条包含Photobucket驱动的图像的Twitter 然后我们开始得到上面的对象引用错误。我花了一两个小时才确定是推特引起了这个问题,现在我已经删除了这个问题,但是我如何才能避开这个问题呢 下面是我的代码,这是拉时间线的一个非常基本的解决方案: OAuthTokens tokens = new OAuthTokens(); tokens.AccessToken = AccessToken; tokens.

我注意到Twitterizer存在一个问题,它一直工作正常,直到我的客户向她的帐户添加了一条包含Photobucket驱动的图像的Twitter

然后我们开始得到上面的对象引用错误。我花了一两个小时才确定是推特引起了这个问题,现在我已经删除了这个问题,但是我如何才能避开这个问题呢

下面是我的代码,这是拉时间线的一个非常基本的解决方案:

OAuthTokens tokens = new OAuthTokens();
tokens.AccessToken = AccessToken;
tokens.AccessTokenSecret = AccessTokenSecret;
tokens.ConsumerKey = ConsumerKey;
tokens.ConsumerSecret = ConsumerSecret;

try
{
  UserTimelineOptions opts = new UserTimelineOptions();
  opts.IncludeRetweets = false;
  opts.UseSSL = true;
  opts.Count = 5;

  /* Throws Exception -> */ TwitterResponse<TwitterStatusCollection> timeLine =  TwitterTimeline.UserTimeline(tokens, opts);
  uxTweets.DataSource = timeLine.ResponseObject;
  uxTweets.DataBind();
}
catch
{
  uxError.Text = "<p class=\"p1\">Twitter isn't configured correctly. Twitter is not responding.</p>";
}
OAuthTokens tokens=新的OAuthTokens();
tokens.AccessToken=AccessToken;
tokens.AccessTokenSecret=AccessTokenSecret;
tokens.ConsumerKey=ConsumerKey;
tokens.ConsumerSecret=ConsumerSecret;
尝试
{
UserTimelineOptions opts=新的UserTimelineOptions();
opts.IncludeRetweets=false;
opts.usesl=true;
选择计数=5;
/*抛出异常->*/TwitterResponse timeLine=TwitterTimeline.UserTimeline(令牌、选项);
uxteets.DataSource=timeLine.ResponseObject;
uxteets.DataBind();
}
抓住
{
uxError.Text=“

Twitter配置不正确。Twitter没有响应。

”; }
更新了Brian的堆栈跟踪:

[NullReferenceException: Object reference not set to an instance of an object.]
   Twitterizer.Entities.Converter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) +1355
   Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueProperty(JsonReader reader, JsonProperty property, Object target, Boolean gottenCurrentValue, Object currentValue) +165
   Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonReader reader, Object target) +476
   Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, String id) +702
   Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateAndPopulateObject(JsonReader reader, JsonObjectContract contract, String id) +110
   Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue) +867
   Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue) +92
   Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IWrappedCollection wrappedList, JsonReader reader, String reference, JsonArrayContract contract) +495
   Newtonsoft.Json.Serialization.<>c__DisplayClass1.<CreateAndPopulateList>b__0(IList l, Boolean isTemporaryListReference) +98
   Newtonsoft.Json.Utilities.CollectionUtils.CreateAndPopulateList(Type listType, Action`2 populateList) +554
   Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateAndPopulateList(JsonReader reader, String reference, JsonArrayContract contract) +103
   Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String reference) +61
   Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue) +119
   Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueNonProperty(JsonReader reader, Type objectType, JsonContract contract) +130
   Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType) +94
   Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) +47
   Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) +105
   Newtonsoft.Json.JsonConvert.DeserializeObject(String value, JsonSerializerSettings settings) +74
   Newtonsoft.Json.JsonConvert.DeserializeObject(String value) +42
   Twitterizer.Core.SerializationHelper`1.Deserialize(Byte[] webResponseData, DeserializationHandler deserializationHandler) +91
   Twitterizer.Core.TwitterCommand`1.ExecuteCommand() +2867
   Twitterizer.TwitterTimeline.UserTimeline(OAuthTokens tokens, UserTimelineOptions options) +48
   DataComuniqueUtils.Twitter.Page_Load(Object sender, EventArgs e) in C:\Users\Paul Stoker\Documents\Visual Studio 2010\Projects\DataComuniqueUtils\DataComuniqueUtils\Twitter.ascx.cs:41
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +91
   System.Web.UI.Control.LoadRecursive() +74
   System.Web.UI.Control.LoadRecursive() +146
   System.Web.UI.Control.LoadRecursive() +146
   System.Web.UI.Control.LoadRecursive() +146
   System.Web.UI.Control.LoadRecursive() +146
   System.Web.UI.Control.LoadRecursive() +146
   System.Web.UI.Control.LoadRecursive() +146
   System.Web.UI.Control.LoadRecursive() +146
   System.Web.UI.Control.LoadRecursive() +146
   System.Web.UI.Control.LoadRecursive() +146
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207
[NullReferenceException:对象引用未设置为对象的实例。]
Twitterizer.Entities.Converter.ReadJson(JsonReader阅读器,类型objectType,对象存在值,JsonSerializer序列化程序)+1355
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueProperty(JsonReader,JsonProperty属性,对象目标,布尔gottenCurrentValue,对象currentValue)+165
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty属性,JsonReader阅读器,对象目标)+476
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(对象newObject,JsonReader,JSONObject合同,字符串id)+702
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateAndPopulateObject(JsonReader,JSONObject合同,字符串id)+110
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader阅读器,类型objectType,JsonContract合约,JsonProperty成员,对象existingValue)+867
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader阅读器,类型objectType,JsonContract合约,JsonProperty成员,对象existingValue)+92
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IWrappedCollection包装列表、JsonReader阅读器、字符串引用、JsonArrayContract合同)+495
Newtonsoft.Json.Serialization.c__DisplayClass1.b__0(IList l,布尔isTemporaryListReference)+98
Newtonsoft.Json.Utilities.CollectionUtils.CreateAndPopulateList(类型listType,操作'2 populateList)+554
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateAndPopulateList(JsonReader阅读器,字符串引用,JsonArrayContract合同)+103
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader阅读器,类型objectType,JsonContract合约,JsonProperty成员,对象existingValue,字符串引用)+61
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader阅读器,类型objectType,JsonContract合约,JsonProperty成员,对象existingValue)+119
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueNonProperty(JsonReader,类型objectType,JsonContract合同)+130
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader,类型objectType)+94
Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader,类型objectType)+47
Newtonsoft.Json.JsonConvert.DeserializeObject(字符串值、类型、JsonSerializerSettings设置)+105
Newtonsoft.Json.JsonConvert.DeserializeObject(字符串值,JsonSerializerSettings设置)+74
Newtonsoft.Json.JsonConvert.DeserializeObject(字符串值)+42
Twitterizer.Core.SerializationHelper`1.反序列化(字节[]webResponseData,反序列化处理程序反序列化处理程序)+91
Twitterizer.Core.TwitterCommand`1.ExecuteCommand()+2867
Twitterizer.TwitterTimeline.UserTimeline(OAuthTokens令牌,UserTimelineOptions选项)+48
C:\Users\Paul Stoker\Documents\Visual Studio 2010\Projects\DataComuniqueUtils\DataComuniqueUtils\Twitter.Page\u加载(对象发送方,事件参数e):41
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,对象o,对象t,事件参数e)+14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(对象发送方,EventArgs e)+35
System.Web.UI.Control.OnLoad(EventArgs e)+91
System.Web.UI.Control.LoadRecursive()+74
System.Web.UI.Control.LoadRecursive()+146
System.Web.UI.Control.LoadRecursive()+146
System.Web.UI.Control.LoadRecursive()+146
System.Web.UI.Control.LoadRecursive()+146
System.Web.UI.Control.LoadRecursive()+146
System.Web.UI.Control.LoadRecursive()+146
System.Web.UI.Control.LoadRecursive()+146
System.Web.UI.Control.LoadRecursive()+146
System.Web.UI.Control.LoadRecursive()+146
System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)+2207

这是Twitterizer库中的一个新错误。我还没有机会确定原因,但在某些情况下,Twitter API返回的数据结构似乎发生了一些变化(我相信这与实体数据有关)


或者,这是一个更糟糕的场景:这是JSON.NET库中的一个新错误,Twitterizer使用它将JSON数据自动读取到对象中。

我一直遇到这个问题。将Newtonsoft.json.dll降级到4.3.*为我解决了这个问题。

请包含异常中的堆栈跟踪。该错误通常意味着有东西被分配给空对象。你能具体说明c的哪一行吗