RegisterClientSideProviders() public static method

public static RegisterClientSideProviders ( ClientSideProviderDescription clientSideProviderDescription ) : void
clientSideProviderDescription ClientSideProviderDescription
return void
示例#1
0
        // Methods
        public static void RegisterClientSideProviderAssembly(AssemblyName assemblyName)
        {
            Utility.ValidateArgumentNonNull(assemblyName, "assemblyName");

            // Load the assembly
            Assembly assembly = null;

            try
            {
                assembly = Assembly.Load(assemblyName);
            }
            catch (System.IO.FileNotFoundException)
            {
                throw new ProxyAssemblyNotLoadedException(String.Format("Assembly {0} not found", assemblyName));
            }

            // Find the official type
            string name = assemblyName.Name + ".UIAutomationClientSideProviders";
            Type   type = assembly.GetType(name);

            if (type == null)
            {
                throw new ProxyAssemblyNotLoadedException(String.Format("Could not find type {0} in assembly {1}", name, assemblyName));
            }

            // Find the descriptor table
            FieldInfo field = type.GetField("ClientSideProviderDescriptionTable", BindingFlags.Public | BindingFlags.Static);

            if ((field == null) || (field.FieldType != typeof(ClientSideProviderDescription[])))
            {
                throw new ProxyAssemblyNotLoadedException(String.Format("Could not find register method on type {0} in assembly {1}", name, assemblyName));
            }

            // Get the table value
            ClientSideProviderDescription[] clientSideProviderDescription = field.GetValue(null) as ClientSideProviderDescription[];

            // Write it through
            if (clientSideProviderDescription != null)
            {
                ClientSettings.RegisterClientSideProviders(clientSideProviderDescription);
            }
        }
示例#2
0
        public static void RegisterClientSideProviderAssembly(AssemblyName assemblyName)
        {
            ArgumentCheck.NotNull(assemblyName, "assemblyName");

            Assembly assembly = null;

            // TODO, wrap exception messages into Catalog.GetString
            try {
                assembly = Assembly.Load(assemblyName);
            } catch (FileNotFoundException) {
                throw new ProxyAssemblyNotLoadedException(
                          string.Format("'{0}' assembly not found.", assemblyName));
            }

            string typeName = assemblyName.Name + ".UIAutomationClientSideProviders";
            Type   type     = assembly.GetType(typeName);

            if (type == null)
            {
                throw new ProxyAssemblyNotLoadedException(
                          string.Format("Cannot find type {0} in assembly {1}",
                                        typeName, assemblyName));
            }

            FieldInfo field = type.GetField("ClientSideProviderDescriptionTable", BindingFlags.Public | BindingFlags.Static);

            if ((field == null) || (field.FieldType != typeof(ClientSideProviderDescription[])))
            {
                throw new ProxyAssemblyNotLoadedException(
                          string.Format("Cannot find Register method on type {0} in assembly {1}",
                                        typeName, assemblyName));
            }

            var description = field.GetValue(null) as ClientSideProviderDescription [];

            if (description != null)
            {
                ClientSettings.RegisterClientSideProviders(description);
            }
        }