public byte[] LoadAssembly(string version, string assemblyFileName)
{
String assemblyRoot = ServerSettings.AssemblyPath;
version = new Version(version).ToString(3);
FileIOPermission permission = new FileIOPermission(FileIOPermissionAccess.AllAccess, new string[] { assemblyRoot + "\\" + version });
byte[] bytes = null;
try {
permission.PermitOnly();
using (FileStream sourceStream = File.OpenRead(assemblyRoot + "\\" + version + "\\" + assemblyFileName)) {
bytes = new byte[sourceStream.Length];
sourceStream.Read(bytes, 0, (int) sourceStream.Length);
}
} finally {
CodeAccessPermission.RevertPermitOnly();
}
return bytes;
}