Exemple #1
0
        private protected ComInterfaceWrapperBase(ComInterfaceAssembly assembly, string comInterfaceName = null, Guid?service = null)
        {
            var(type, instance) = assembly.CreateInstance(comInterfaceName ?? this.GetType().GetComInterfaceNameIfWrapper(), service);

            this.ComInterfaceAssembly = assembly;
            this.ComInterfaceType     = type;
            this.ComObject            = instance;
        }
Exemple #2
0
        private protected ComInterfaceWrapperBase(ComInterfaceAssembly assembly, string comInterfaceName = null, uint latestVersion = 1, Guid?service = null)
        {
            var comInterfaceName2 = comInterfaceName ?? this.GetType().GetComInterfaceNameIfWrapper();

            for (var version = latestVersion; version >= 1; version--)
            {
                var type = assembly.GetType(version != 1 ? $"{comInterfaceName2}{version}" : comInterfaceName2);
                if (type != null)
                {
                    var instance = assembly.CreateInstance(type, service);
                    this.ComInterfaceAssembly = assembly;
                    this.ComInterfaceType     = type;
                    this.ComObject            = instance;
                    this.ComVersion           = version;
                    return;
                }
            }

            throw new InvalidOperationException($"{comInterfaceName2} or later version is not found.");
        }