2017-07-07 5 views
0

コンパイル時にファイルのテキストをクラスのプロパティにロードしたい。C#コンパイル時にファイルのテキストをオブジェクトのプロパティにロードする

例 -

私はbanana.txt、私はコンパイル時にBananaクラスに入れたいのですがその内容と呼ばれるファイルを持っています。

public class Banana 
{ 
    public string Text { get; set; } //contents of banana.txt goes in here 
} 

どうすればいいですか?

この目的は、Bananaオブジェクトが必要なたびに、ファイルを読み込む必要はなく、ファイルのテキストはコンパイル時に一度読み込むだけで済みます。

NOTE:。。I 、ファイルから読み込む変数、またはリソースファイルに内容をコピーしていないと私はすべてのBananaオブジェクトは同じテキストを持つことになります実現しなければならない)に

+0

アプリケーションの起動時(ランタイム)にファイルを1回ロードすることはできますか? – ashin

+0

Ashin、それはオブジェクトが呼び出されるたびに読み込むよりも優れた解決策です。 –

+0

私が投稿した回答を確認してください。 – ashin

答えて

0

一つの方法これは次のようになります。 ビルド前のイベントを作成します。 ビルド前イベントでは、プログラムを起動します。 このプログラムは別のC#プログラムにすることができます このプログラムはbanana.txtから読み込みます。 このプログラムはソースコードを再生成します。

たとえば、あなたのようにあなたのコードを持っている場合:

public string Text = "~placeholder_for_Text~" 

それは、実行時に一度だけ、あなたのファイルの内容をロードするために大丈夫だ場合プログラムはbanana.txt

0

の実際の内容と「〜placeholder_for_Text〜」を置き換えます

public class Banana 
{ 
    public string Text 
    { 
     get 
     { 
      return fileContent; 
     } 
    } 

    private static string fileContent; 

    static Banana() 
    { 
     using (var reader = File.OpenText("banana.txt")) 
     { 
      fileContent = reader.ReadToEnd(); 
     } 
    } 
} 
+0

提案のおかげでありがとう、私はこのようなものを使用して終了することがありますが、私はまだコンパイル中にコードでそれを行うための簡単な方法があるかどうかを知りたいです。 –

関連する問題