コード例 #1
0
        /// <summary>
        /// Returns a key unique for the given type.
        /// </summary>
        /// <param name="type">The type the key shall be unique to</param>
        /// <param name="partialKey">The partial key to be made unique</param>
        /// <returns>A key formatted as <i>typename.partialkey</i></returns>
        public static string GetTypeScopedString(Type type, string partialKey)
        {
            AssertUtils.ArgumentNotNull(type, "type");
            AssertUtils.ArgumentHasText(partialKey, "partialKey");

            return(GetUniqueKey(type, null, partialKey));
        }
コード例 #2
0
        /// <summary>
        /// Returns a key unique for the given instance.
        /// </summary>
        /// <param name="instance">The instance the key shall be unique to</param>
        /// <param name="partialKey">The partial key to be made unique</param>
        /// <returns>A key formatted as <i>typename[instance-id].partialkey</i></returns>
        public static string GetInstanceScopedString(object instance, string partialKey)
        {
            AssertUtils.ArgumentNotNull(instance, "instance");
            AssertUtils.ArgumentHasText(partialKey, "partialKey");

            if (instance is Type)
            {
                throw new ArgumentException(
                          "please use GetUniqueKey(Type,string) for creating type specific keys", "instance");
            }
            return(GetUniqueKey(instance.GetType(), instance, partialKey));
        }
コード例 #3
0
        public static void SaveAssembly(string assemblyName)
        {
            AssertUtils.ArgumentHasText(assemblyName, "assemblyName");

            ModuleBuilder module = null;

            lock (s_moduleCache.SyncRoot)
            {
                module = (ModuleBuilder)s_moduleCache[assemblyName];
            }

            if (module == null)
            {
                throw new ArgumentException(string.Format("'{0}' is not a valid dynamic assembly name", assemblyName), "assemblyName");
            }

            AssemblyBuilder assembly = (AssemblyBuilder)module.Assembly;

            assembly.Save(assembly.GetName().Name + ".dll");
        }