私はここで何が起こっているのか分かりません。Twitter APIを使って認証します。このStackOverflowExceptionが表示されるのはなぜですか?
しかし、それはそれはツイッターに投稿すべきポイントに到達したとき、それが言うことStackOverflowException
をスロー:
An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll
私はかなりバッフル付きです。以下のコードは、例外を引き起こし、最終的に例外を引き起こします。
void StartValidation()
{
Console.Clear();
//Start Status thread
var status = TextAndUi.GetStatisThread();
status.Start("Validating");
//Check for Messages
var tweetAndSenderData = Imap.GetUnreadMessageAndSender();
if (tweetAndSenderData != null)
{
//Authurize connection and app
var authenticate = new Authenticate();
var tweetApp = authenticate.CreateClient();
//End thread
status.Abort();
Console.WriteLine("Validated!");
Console.Clear();
//Post tweets
PostContent("test", tweetApp);
//Delete messages
Imap.DeleteMessages();
}
else
{
//End thread
status.Abort();
TextAndUi.ShowSomethingToTheUser("The box is empty, or TTT could not secure a connection", true);
}
}
void PostContent(string myTweet, TwitterService tweetApp)
{
if (TextAndUi.MessageIsSuitableLength(myTweet))
{
PostTweet(tweetApp, myTweet);
}
}
void PostTweet(TwitterService tweetApp, string tweet)
{
var tweetOptions = new SendTweetOptions() {Status = tweet};
tweetApp.SendTweet(tweetOptions); /*The line that throws the exception*
}
使用されているライブラリはTweetSharpです。
編集:追加のコールスタックデータ
mscorlib.dll!System.AppDomain.ExecuteAssembly(string assemblyFile, System.Security.Policy.Evidence assemblySecurity, string[] args) + 0x6b bytes Microsoft.VisualStudio.HostingProcess.Utilities.dll!Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() + 0x27 bytes mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state) + 0x6f bytes mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) + 0xa7 bytes mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) + 0x16 bytes mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x41 bytes mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x44 bytes
Post 'SendTweet'メソッド –
Visual Studioでこれをデバッグできる場合は、* Call Stack *ウィンドウ(** Ctrl ** + ** C **、** D **)を開いて、答えはそこにあるはずです。おそらくメソッド 'a()'をもう一度(直接的または間接的に1つ以上の他のメソッドを通して)呼び出す 'a()'メソッドを呼び出します。 –
@リチャードエヴァーありがとう!私は正直なことですが、そこから集めることはあまりありません。あなたはそれから何かを得ることができますか? – Frostytheswimmer