ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/RomCheater/trunk/RomCheater.Core/ProcessorAssemblyArchitecture.cs
(Generate patch)

Comparing trunk/RomCheater.Core/ProcessorAssemblyArchitecture.cs (file contents):
Revision 117 by william, Thu May 10 18:12:06 2012 UTC vs.
Revision 119 by william, Thu May 10 18:34:26 2012 UTC

--- trunk/RomCheater.Core/ProcessorAssemblyArchitecture.cs	2012/05/10 18:12:06	117
+++ trunk/RomCheater.Core/ProcessorAssemblyArchitecture.cs	2012/05/10 18:34:26	119
@@ -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,11 +26,11 @@ 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
         public const string Undefined = "Undefined";
         public const string x86 = "x86";
@@ -38,7 +38,31 @@ namespace System.Reflection
         public const string Amd64 = "Amd64";
         public const string Ia64 = "Ia64";
         public const string AnyCpu = "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;
+        }
+
     }
 }