2017-07-18 17 views
0

私はXamarinのためCrossDownManagerプラグインを使用しています、私は期待どおりに処理し、Android上でメソッドを実行すると Here フォーム。 iOSの場合Debug.Writeline("Success!")はAndroidのようにヒットしていません。私の人生のためにXamarinフォーム - iOSの正しく処理していない

void ViewImage(string imageLink) 
    { 
     var downloadManager = CrossDownloadManager.Current; 
     downloadManager.PathNameForDownloadedFile = new System.Func<IDownloadFile, string>(file => 
        { 
         string path = DependencyService.Get<IImageSaver>().Save("YHTS" + DateTime.Today.Ticks.ToString() + ".jpg"); 
         Debug.WriteLine("Success!"); 
          return path; 
         }); 

     try 
     { 
      var file = downloadManager.CreateDownloadFile(imageLink); 
      Debug.WriteLine("file created"); 
      downloadManager.Start(file); 
      Debug.WriteLine("downloadstarted"); 
     } 
     catch (Exception e) 
     { 
      Debug.WriteLine(e.ToString()); 
     } 
    } 

そのコードブロックが処理されない理由を私は理解することはできません。ここで

はコードがあります。何か案は?

答えて

1

これは、技術的にコードが期待通りに機能するため、興味深い問題です。私は少し掘りを行い、などの... here.

あなたのオプションが多数あり類似した質問への回答を見つけた:

DEBUGプリプロセッサ、あなたの質問に表示されて。

使用System.Diagnostic.Debug.WriteLine:デバッグへの呼び出し*原因[条件(「DEBUG」)]に、コンパイラによって に削除されますが、 が適用されている属性。

/NOPを削除する

使用Fodyと再織りアセンブリ、それを標準出力作家へのラッパーとして独自の「ロガー」クラスを作成し、 [条件(「DEBUG」)]/ WriteLineメソッドをリダイレクト私は内部ログにコールをリダイレクトするためにこれを行い、 クラッシュまたはユーザのstat要求に応じて、このログをクラッシュレポート サーバに転送します。など、.....

ので、考慮すべきいくつかの選択肢があり、私が見てきた一般的な候補の1つのようなWriteLine();の完全修飾参照を使用するようにされている。

System.Console.WriteLine("woop woop"); 

上記を最初に試してみることをお勧めします。

関連する問題