--- trunk/RomCheater.Core/ProcessorAssemblyArchitecture.cs 2012/05/10 18:12:06 117
+++ trunk/RomCheater.Core/ProcessorAssemblyArchitecture.cs 2012/05/11 10:58:42 124
@@ -10,7 +10,7 @@ namespace System.Reflection
[AttributeUsage(AttributeTargets.Assembly)]
public class ProcessorAssemblyArchitecture : Attribute
{
- public ProcessorAssemblyArchitecture() { ProcessorArchitecture = Undefined; }
+ public ProcessorAssemblyArchitecture() { Architecture = Undefined; }
public ProcessorAssemblyArchitecture(string arch)
{
Type t = typeof(ProcessorAssemblyArchitecture);
@@ -26,19 +26,64 @@ namespace System.Reflection
break;
}
}
- if (!found) { ProcessorArchitecture = Undefined; }
- else { ProcessorArchitecture = arch; }
- }
- string _ProcessorArchitecture;
- public string ProcessorArchitecture { get { return _ProcessorArchitecture; } private set { _ProcessorArchitecture = value; } }
+ if (!found) { Architecture = Undefined; }
+ else { Architecture = arch; }
+ }
+ string _Architecture;
+ public string Architecture { get { return _Architecture; } private set { _Architecture = value; } }
#region processor architecture
+ ///
+ /// Represents an undefined processor arcitecture
+ ///
public const string Undefined = "Undefined";
+ ///
+ /// Represents a 32-bit processor arcitecture
+ ///
public const string x86 = "x86";
+ ///
+ /// Represents a 64-bit processor arcitecture
+ ///
public const string x64 = "x64";
- public const string Amd64 = "Amd64";
+ ///
+ /// Represents a 64-bit processor arcitecture (this is equivalent to x64, this is just Amd's nameing convention)
+ ///
+ public const string Amd64 = x64;
+ ///
+ /// Represents am Itanium 64-bit processor arcitecture
+ ///
public const string Ia64 = "Ia64";
+ ///
+ /// Represents a 32-bit and 64-bit processor arcitecture (it will run in 32-bit mode for 32-bit systems and 64-bit for non-32bit systems)
+ ///
public const string AnyCpu = "AnyCpu";
+ ///
+ /// Represents a 32-bit and 64-bit processor arcitecture (refered to as AnyCpu)
+ ///
+ public const string Msil = AnyCpu;
#endregion
+
+ public static string GetProcessorArchitecture(Assembly t)
+ {
+ string assembly_arch = Undefined;
+
+ // get architecture
+ ProcessorArchitecture o = t.GetName().ProcessorArchitecture;
+ if (o == ProcessorArchitecture.None)
+ assembly_arch = Undefined;
+
+ switch (o)
+ {
+ case ProcessorArchitecture.Amd64: assembly_arch = Amd64; break;
+ case ProcessorArchitecture.IA64: assembly_arch = Ia64; break;
+ case ProcessorArchitecture.MSIL: assembly_arch = AnyCpu; break;
+ case ProcessorArchitecture.X86: assembly_arch = x86; break;
+ case ProcessorArchitecture.None: break;
+ default: assembly_arch = Undefined; break;
+ }
+
+ return assembly_arch;
+ }
+
}
}