Пример #1
0
        public void UnregisterInProcServer(Type t, RegistryView registryView = RegistryView.Default)
        {
            var reg = ComClrInfoFactory.CreateClass(t);

         #if NET35
            throw new NotImplementedException("Need to backport 4.0 methods");
#else
            var root    = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, registryView);
            var classes = root.CreateSubKey(CLASSES);
            unregisterInProcServer(classes, reg);
#endif
        }
Пример #2
0
        public void UnregisterTypeLib(System.Reflection.Assembly typeLib, RegistryView registryView = RegistryView.Default)
        {
            var reg = ComClrInfoFactory.CreateTypeLib(typeLib);

#if NET35
            throw new NotImplementedException("Need to backport 4.0 methods");
#else
            var root    = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, registryView);
            var classes = root.CreateSubKey(CLASSES);
            unregisterTypeLib(classes, reg);
#endif
        }
Пример #3
0
        public void RegisterInterface(Type type, RegistryView registryView)
        {
            var reg = ComClrInfoFactory.CreateInterface(type);

            #if NET35
            throw new NotImplementedException("Need to backport 4.0 methods");
#else
            var root    = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, registryView);
            var classes = root.CreateSubKey(CLASSES);
            registerInterface(classes, reg);
#endif
        }
Пример #4
0
        public void RegisterInterfaces(IEnumerable <Type> types, RegistryView registryView)
        {
            var regs = new List <ComInterfaceInfo>();

            foreach (var type in types)
            {
                regs.Add(ComClrInfoFactory.CreateInterface(type));
            }

            #if NET35
            throw new NotImplementedException("Need to backport 4.0 methods");
#else
            var root    = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, registryView);
            var classes = root.CreateSubKey(CLASSES);
            registerInterfaces(classes, regs);
#endif
        }
Пример #5
0
            public TypeLib(System.Reflection.Assembly asm)
            {
                // Only 2 numbers sypported by COM instead of 4 in CLR
                var ver = asm.GetName().Version;

                Version = new Version(ver.Major, ver.Minor);

                var attrs = CustomAttributeData.GetCustomAttributes(asm);
                var attr  = ComClrInfoFactory.getCustomAttribute(attrs, typeof(GuidAttribute));

                if (attr == null)
                {
                    throw new ArgumentException("Assembly must have GuidAttribute defined", "asm");
                }
                var guidValue = attr.ConstructorArguments.First().ToString();//raw, as is directly in code

                Guid = new Guid(guidValue.Remove(guidValue.Length - 1, 1).Remove(0, 1));
            }