更新:私はそのプロジェクトの内容がjson形式のテキストファイルリソースでした。これは問題なく動作するようです。これは従来のですか?私はまだ質問が残っていると思う。クラスライブラリのリソースとxamarin.android
jsonファイルを使用して作成しテストしたクラスライブラリがあります。もともと、私はこれを単にプロジェクトにアクセス可能なファイルとして持っていました。私はそれをdeserializeすることができます、それを使用して、問題ありません。
私はxamarid.androidプロジェクトを私のソリューションに追加しました。私のインターフェースを開発しました。私はまた、私が書いたアンドロイドアプリで使うつもりのクラスライブラリを参照しました。
私がアプリケーションを実行して新しいクラスを開始した後、Visual Studioは停止し、問題のjsonファイルを読み取ることができないと訴えました。
元のクラスライブラリプロジェクトはビルド時に単にファイルをディスクに出力していたので意味がありました。 Androidはその場所を知らない私はすでに試みたが、動作しません
もの:
ビルドアクション:埋め込まれたリソース/リソース/ プロジェクトリソースとしてファイルを追加する をコンパイルします。これは今、Visual Studioがファイルがバイナリであると思っていて、デシリアライズできないのはなぜですか?
エラー(現時点では明らか): System.IO.DirectoryNotFoundException: "/Data/BattingAverageFlair.json"のパスの一部を見つけることができませんでした。
public List<Flair> Flair = JsonConvert.DeserializeObject<List<Flair>>(File.ReadAllText("Data/BattingAverageFlair.json"));
public string GetFlair(double averge) => Flair.First(m => averge <= m.Max && averge >= m.Min).Flairtext;
理想的には私のクラスライブラリは:BattingAverageCalculatorは私のxamarin Androidアプリ、BattingAverageの完全に独立していなければなりません。
ありがとうございました!
私は意図的にUI(xamarinとは別のアプリケーションやデータロジック(上品なライブラリ)を維持しようとしています。アンドロイド)。 jsonファイルは、実行時にアクセスされるデータベースの意味であり、単純なデータ型を返します。 – Steve
ファイルアクセスを抽象化することはできません。完全にプラットフォームに依存しています。おそらく、下位レベルの入力として文字列またはストリームを取得できます。 – Emad
プロジェクトのリソースとして追加したときにコンテンツを追加してjsonを使用することができました。なぜなら、DLL内にラップされていて外部のものではないからです。 – Steve