私のアプリケーションでは、Windows サービスを使用してファイルを読み込んでいます。このサービスは、毎秒ファイルを読み取ります。これは、ファイルを読み取るために使用しているコードです。
public static byte[] GetBytesFromFile(string fullFilePath)
{
FileStream fs = File.OpenRead(fullFilePath);
try
{
byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0, Convert.ToInt32(fs.Length));
fs.Close();
return bytes;
}
finally
{
fs.Close();
}
}
数時間後、私はSystem.OutOfMemoryException
. 私はここで何か悪いことをしていますか?
更新: このコードで返されたバイトを使用しています:
object s = null;
System.Reflection.Assembly a = Assembly.Load(bytes);
object o = a.CreateInstance("ID_" + report.ID.ToString().Replace("-", "_"));
Type t = o.GetType();
MethodInfo mi = t.GetMethod(name);
object[] values = new object[1];
values[0] = nameValue;
s = mi.Invoke(o, values);
return s;