Mon Jul 1 18:01:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
[mono.git] / mcs / class / corlib / System.Reflection / AssemblyName.cs
index 8a04d74df674bbdaf17172b8c35fba7e5388ec6b..a457ebb1614b8364e61ddade61ef48cd61c24645 100755 (executable)
 
 using System;
 using System.Reflection;
+using System.Globalization;
+using System.Configuration.Assemblies;
 using System.Runtime.Serialization;
 
 namespace System.Reflection {
 
-       public class AssemblyName  : ISerializable // ICloneable, , IDeserializationCallback
+       [Serializable]
+       public sealed class AssemblyName  : ISerializable // ICloneable, , IDeserializationCallback
        {
-               string name;
+               string name = "";
                string codebase;
-               Version version;
+               int major, minor, build, revision;
+               CultureInfo cultureinfo;
+               AssemblyNameFlags flags;
+               AssemblyHashAlgorithm hashalg;
+               StrongNameKeyPair keypair;
+               AssemblyVersionCompatibility versioncompat;
                
                public AssemblyName ()
                {
-                       name = null;
                }
 
-               public AssemblyName (SerializationInfo si, StreamingContext sc)
+               internal AssemblyName (SerializationInfo si, StreamingContext sc)
                {
                        name = si.GetString ("_Name");
                        codebase = si.GetString ("_CodeBase");
-                       version = (Version)si.GetValue ("_Version", typeof (Version));
+                       Version = (Version)si.GetValue ("_Version", typeof (Version));
                }
 
-               public virtual string Name {
+               public string Name {
                        get {
                                return name;
                        }
@@ -41,7 +48,7 @@ namespace System.Reflection {
                        }
                }
 
-               public virtual string CodeBase {
+               public string CodeBase {
                        get {
                                return codebase;
                        }
@@ -51,13 +58,80 @@ namespace System.Reflection {
                        }
                }
 
-               public virtual Version Version {
+               [MonoTODO]
+               public string EscapedCodeBase {
                        get {
-                               return version;
+                               return codebase;
+                       }
+               }
+
+               public CultureInfo CultureInfo {
+                       get {
+                               return cultureinfo;
+                       }
+
+                       set {
+                               cultureinfo = value;
+                       }
+               }
+
+               public AssemblyNameFlags Flags {
+                       get {
+                               return flags;
+                       }
+
+                       set {
+                               flags = value;
+                       }
+               }
+
+               [MonoTODO]
+               public string FullName {
+                       get {
+                               return name;
+                       }
+               }
+
+               public AssemblyHashAlgorithm HashAlgorithm {
+                       get {
+                               return hashalg;
                        }
 
                        set {
-                               version = value;
+                               hashalg = value;
+                       }
+               }
+
+               public StrongNameKeyPair KeyPair {
+                       get {
+                               return keypair;
+                       }
+
+                       set {
+                               keypair = value;
+                       }
+               }
+
+               public Version Version {
+                       get {
+                               return new Version (major, minor, build, revision);
+                       }
+
+                       set {
+                               major = value.Major;
+                               minor = value.Minor;
+                               build = value.Build;
+                               revision = value.Revision;
+                       }
+               }
+
+               public AssemblyVersionCompatibility VersionCompatibility {
+                       get {
+                               return versioncompat;
+                       }
+
+                       set {
+                               versioncompat = value;
                        }
                }
                
@@ -79,11 +153,16 @@ namespace System.Reflection {
                        return false;
                }
 
+               [MonoTODO]
+               public byte[] GetPublicKeyToken() {
+                       return new byte[0];
+               }
+
                public void GetObjectData (SerializationInfo info, StreamingContext context)
                {
                        info.AddValue ("_Name", name);
                        info.AddValue ("_CodeBase", codebase);
-                       info.AddValue ("_Version", version);
+                       info.AddValue ("_Version", Version);
                }
        }
 }