こんにちは、ひつじ先輩です。
この記事では、System.TypeLoadExceptionという例外の原因と対処法を書きます。
C#で、NugetからCoreTweetというパッケージをとってきて使ったらでました。
例外メッセージ:TypeLoadException
「An unhandled exception of type ‘System.TypeLoadException’ occurred in coreTweet.exe Additional information: アセンブリ ‘coreTweet, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null’ から型 ‘CoreTweet.Tokens’ を読み込めませんでした。」
TypeLoadExceptionの対処法と原因
対処法
ここ(英語のリンクです)をみて解決しました。
質問者は
「なんかよくわからないけど、プロジェクトごと作りなおしたら直った。プロジェクトの名前が悪かったんじゃないかと疑ってる」
と言ってます。
そこで自分もプロジェクトを作り直し、名前を変えてみたらうまく動きました。
プロジェクト名をパッケージ名と同じ「coreTweet」にしていたので全く違う「TwitterAPI」にしました。
パッケージ名とプロジェクト名を似通ったのにしていて、’System.TypeLoadException’をもらうときはプロジェクトを作り直し、別の名前を試してみてください。
原因
原因については推測ですが、例外メッセージでは
「アセンブリから型が読み込めませんでした」
とあります。
プロジェクトがパッケージ(アセンブリ)内にあるコードを読み込むときに、プロジェクト名がパッケージ名と同じだと、読み込みがうまくいかないようです。
そのときにでる例外がSystem.TypeLoadExceptionなのだと思われます。
解決しました