質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

Q&A

解決済

2回答

2819閲覧

意味不明なエラーが発生する。

yukkuri_emilin

総合スコア8

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

0グッド

1クリップ

投稿2018/01/08 11:00

編集2018/01/09 06:14

CoreTweetを使って簡単にツイートだけするアプリをWPFを使って作っていたのですが、下記のようなエラーが出て実行ができません。
原因を調べたのですがエラーの原因もなく理由がわかりません。

###発生している問題・エラーメッセージ

System.Windows.Markup.XamlParseException が発生しました HResult=0x80131501 Message=アセンブリ 'TweetOnlyClient, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' で定義された 'MainWindow' のインスタンスを作成できません。 呼び出しのターゲットが例外をスローしました。 マークアップ ファイル 'MainWindow.xaml' にエラーがあります。 Source=<例外のソースを評価できません> スタック トレース: <例外のスタック トレースを評価できません> 内部例外 1: TargetInvocationException: 呼び出しのターゲットが例外をスローしました。 内部例外 2: TypeInitializationException: 'TweetOnlyClient.Tokenss' のタイプ初期化子が例外をスローしました。 内部例外 3: NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。

###該当のソースコード

MainWindow.xaml

1<Window x:Class="TweetOnlyClient.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6 xmlns:local="clr-namespace:TweetOnlyClient" 7 mc:Ignorable="d" 8 Title="Tweet" Height="110" Width="190" MaxHeight="110" MaxWidth="190" KeyDown="Window_KeyDown"> 9 <Grid> 10 <Label Content="Tweet" HorizontalAlignment="Left" VerticalAlignment="Top"/> 11 <TextBox x:Name="TweetBOx" HorizontalAlignment="Left" Height="34" Margin="10,25,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="152"/> 12 <Button x:Name="Tweet" Content="Tweet" HorizontalAlignment="Left" Margin="87,3,0,0" VerticalAlignment="Top" Width="75" Click="Tweet_Click"/> 13 14 </Grid> 15</Window> 16

MainWindow.xaml.cs

1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5using System.Windows; 6using System.Windows.Controls; 7using System.Windows.Data; 8using System.Windows.Documents; 9using System.Windows.Input; 10using System.Windows.Media; 11using System.Windows.Media.Imaging; 12using System.Windows.Navigation; 13using System.Windows.Shapes; 14using CoreTweet; 15using System.Diagnostics; 16using static CoreTweet.OAuth; 17 18namespace TweetOnlyClient 19{ 20 /// <summary> 21 /// MainWindow.xaml の相互作用ロジック 22 /// </summary> 23 public partial class MainWindow : Window 24 { 25 public Tokenss tokensa = new Tokenss(); 26 public Tokens tokens; 27 public int inital = 0; 28 public OAuthSession oauth = Authorize("", ""); 29 public MainWindow() 30 { 31 InitializeComponent(); 32 if (inital == 0) 33 { 34 tokensa.Show(); 35 Hide(); 36 inital++; 37 } 38 } 39 40 private void Window_KeyDown(object sender, KeyEventArgs e) 41 { 42 if(e.Key == Key.LeftCtrl||e.Key == Key.RightCtrl&&e.Key == Key.Enter) 43 { 44 if (TweetBOx.Text == null || TweetBOx.Text == "") 45 { 46 tokens.Statuses.Update(status => TweetBOx.Text); 47 TweetBOx.Text = ""; 48 } 49 } 50 } 51 52 private void Tweet_Click(object sender, RoutedEventArgs e) 53 { 54 tokens.Statuses.Update(status => TweetBOx.Text); 55 TweetBOx.Text = ""; 56 } 57 } 58}

Token.xaml

1<Window x:Class="TweetOnlyClient.Tokenss" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6 xmlns:local="clr-namespace:TweetOnlyClient" 7 mc:Ignorable="d" 8 Title="取得したPINを入力してください。" Height="101" Width="200" Activated="Window_Activated"> 9 <Grid> 10 <TextBox Name="TextBox1" HorizontalAlignment="Left" Height="23" Margin="10,35,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="90"/> 11 <Label Content="取得したPINを入力してください。" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top"/> 12 <Button Content="Submit" HorizontalAlignment="Left" Margin="105,35,0,0" VerticalAlignment="Top" Width="75" Height="23" Click="Button_Click"/> 13 14 </Grid> 15</Window>

Token.xaml.cs

1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5using System.Windows; 6using System.Windows.Controls; 7using System.Windows.Data; 8using System.Windows.Documents; 9using System.Windows.Input; 10using System.Windows.Media; 11using System.Windows.Media.Imaging; 12using System.Windows.Shapes; 13using CoreTweet; 14 15namespace TweetOnlyClient 16{ 17 /// <summary> 18 /// Token.xaml の相互作用ロジック 19 /// </summary> 20 public partial class Tokenss : Window 21 { 22 public static MainWindow main = new MainWindow(); 23 public Tokenss() 24 { 25 InitializeComponent(); 26 System.Diagnostics.Process.Start(main.oauth.AuthorizeUri.AbsoluteUri); 27 } 28 29 private void Button_Click(object sender, RoutedEventArgs e) 30 { 31 main.tokens = main.oauth.GetTokens(TextBox1.Text); 32 main.Show(); 33 Hide(); 34 } 35 36 private void Window_Activated(object sender, EventArgs e) 37 { 38 39 } 40 } 41} 42

###補足情報(言語/FW/ツール等のバージョンなど)
ソースは上から
MainWindow.xaml
MainWindow.xaml.cs
Token.xaml
Token.xaml.cs
環境はVisualStudio2017
C#とXaml

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

moredeep

2018/01/08 11:13

TweetOnlyClient.csでTokenssというものを使用していますか?使用しているようであればその部分も記載してください。
umyu

2018/01/08 15:24

MainWindowクラスの public OAuthSession oauth = Authorizeに認証キーのトークン文字列ぽいものが記載されています。質問文を編集して、あとツィッターdevからトークンを取り直してくださいな。設定ファイルから読み出す形にするとこういう問題を防げます。
guest

回答2

0

ベストアンサー

MainWindowのインスタンス生成時に必ずnew Tokenss();が実行され、
Tokenssのインスタンス生成時にも必ずnew MainWindow();が実行されるために永久ループになってるんじゃないですか?

投稿2018/01/08 15:17

len_souko

総合スコア1348

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

len_souko

2018/01/08 15:26

メインウィンドウとツイートウィンドウの行き来をしたいのであるならば、Tokenssのコンストラクタに引数を追加してMainWindowのインスタンスを渡すようにすればいいんじゃないでしょうか? あと、MainWindowの >public int inital = 0; これも不要です おそらくやりたいであろうMainWindowのインスタンス一つ目の時だけツイートウィンドウを表示したいのでしょうけれど、staticでないためMainWindowのインスタンスが生成するたびに0で初期化されるので、コンストラクタ内のIF分は必ず通ってしまいますので 姑息(その場しのぎ)な手段ではなく、きちんと設計した方が良いと思います
guest

0

XamlParseExceptionがスローされる原因と対処法について

XAML ではなくコンストラクタの方をチェックしてみてください。

投稿2018/01/08 11:09

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問