/Runtime/Microsoft.Dynamic/Runtime/AssemblyTypeNames.cs

http://ironperunis.codeplex.com · C# · 8124 lines · 7784 code · 295 blank · 45 comment · 21 complexity · 1cfaf4ddf03d2145bb0d0c60933371c6 MD5 · raw file

Large files are truncated click here to view the full file

  1. /* ****************************************************************************
  2. *
  3. * Copyright (c) Microsoft Corporation.
  4. *
  5. * This source code is subject to terms and conditions of the Apache License, Version 2.0. A
  6. * copy of the license can be found in the License.html file at the root of this distribution. If
  7. * you cannot locate the Apache License, Version 2.0, please send an email to
  8. * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
  9. * by the terms of the Apache License, Version 2.0.
  10. *
  11. * You must not remove this notice, or any other, from this software.
  12. *
  13. *
  14. * ***************************************************************************/
  15. using System;
  16. using System.Collections.Generic;
  17. using System.Diagnostics;
  18. using System.Reflection;
  19. using Microsoft.Scripting.Utils;
  20. namespace Microsoft.Scripting.Runtime {
  21. internal struct TypeName {
  22. private readonly string _namespace;
  23. private readonly string _typeName;
  24. internal TypeName(Type type) {
  25. Debug.Assert(!type.IsNested());
  26. _namespace = type.Namespace;
  27. _typeName = type.Name;
  28. }
  29. internal TypeName(string nameSpace, string typeName) {
  30. _namespace = nameSpace;
  31. _typeName = typeName;
  32. }
  33. internal string Namespace { get { return _namespace; } }
  34. internal string Name { get { return _typeName; } }
  35. public override int GetHashCode() {
  36. int hash = 13 << 20;
  37. if (_namespace != null) hash ^= _namespace.GetHashCode();
  38. if (_typeName != null) hash ^= _typeName.GetHashCode();
  39. return hash;
  40. }
  41. public override bool Equals(object obj) {
  42. if (!(obj is TypeName)) {
  43. return false;
  44. }
  45. TypeName tn = (TypeName)obj;
  46. return tn._namespace == _namespace && tn._typeName == _typeName;
  47. }
  48. public static bool operator ==(TypeName a, TypeName b) {
  49. return a._namespace == b._namespace && a._typeName == b._typeName;
  50. }
  51. public static bool operator !=(TypeName a, TypeName b) {
  52. return !(a == b);
  53. }
  54. }
  55. // TODO: Only used by ComObjectWityTypeInfo. Remove when gone!
  56. internal static class AssemblyTypeNames {
  57. public static IEnumerable<TypeName> GetTypeNames(Assembly assem, bool includePrivateTypes) {
  58. #if !SILVERLIGHT
  59. switch (assem.FullName) {
  60. case "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089": return Get_mscorlib_TypeNames();
  61. case "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089": return Get_System_TypeNames();
  62. case "System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089": return Get_SystemXml_TypeNames();
  63. case "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a": return Get_SystemDrawing_TypeNames();
  64. case "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089": return Get_SystemWindowsForms_TypeNames();
  65. }
  66. #endif
  67. Type[] types = LoadTypesFromAssembly(assem, includePrivateTypes);
  68. return GetTypeNames(types);
  69. }
  70. static IEnumerable<TypeName> GetTypeNames(Type[] types) {
  71. foreach (Type t in types) {
  72. if (t.IsNested()) continue;
  73. TypeName typeName = new TypeName(t);
  74. yield return typeName;
  75. }
  76. }
  77. // Note that the result can contain null references.
  78. private static Type[] GetAllTypesFromAssembly(Assembly asm) {
  79. #if SILVERLIGHT // ReflectionTypeLoadException
  80. try {
  81. return asm.GetTypes();
  82. } catch (Exception) {
  83. return Type.EmptyTypes;
  84. }
  85. #else
  86. try {
  87. return asm.GetTypes();
  88. } catch (ReflectionTypeLoadException rtlException) {
  89. return rtlException.Types;
  90. }
  91. #endif
  92. }
  93. [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
  94. public static Type[] LoadTypesFromAssembly(Assembly assembly, bool includePrivateTypes) {
  95. ContractUtils.RequiresNotNull(assembly, "assembly");
  96. if (includePrivateTypes) {
  97. return ArrayUtils.FindAll(GetAllTypesFromAssembly(assembly), (type) => type != null);
  98. }
  99. try {
  100. return assembly.GetExportedTypes();
  101. } catch (NotSupportedException) {
  102. // GetExportedTypes does not work with dynamic assemblies
  103. } catch (Exception) {
  104. // Some type loads may cause exceptions. Unfortunately, there is no way to ask GetExportedTypes
  105. // for just the list of types that we successfully loaded.
  106. }
  107. return ArrayUtils.FindAll(GetAllTypesFromAssembly(assembly), (type) => type != null && type.IsPublic);
  108. }
  109. #if !SILVERLIGHT
  110. static IEnumerable<TypeName> GetTypeNames(string[] namespaces, string[][] types) {
  111. Debug.Assert(namespaces.Length == types.Length);
  112. for (int i = 0; i < namespaces.Length; i++) {
  113. for (int j = 0; j < types[i].Length; j++) {
  114. TypeName typeName = new TypeName(namespaces[i], types[i][j]);
  115. yield return typeName;
  116. }
  117. }
  118. }
  119. #if CLR2
  120. #region Generated Well-known assembly type names
  121. // *** BEGIN GENERATED CODE ***
  122. // generated by function: do_generate from: generate_AssemblyTypeNames.py
  123. static IEnumerable<TypeName> Get_mscorlib_TypeNames() {
  124. // mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
  125. // Total number of types = 1271
  126. string [] namespaces = new string[47] {
  127. "Microsoft.Win32",
  128. "Microsoft.Win32.SafeHandles",
  129. "System",
  130. "System.Collections",
  131. "System.Collections.Generic",
  132. "System.Collections.ObjectModel",
  133. "System.Configuration.Assemblies",
  134. "System.Deployment.Internal",
  135. "System.Diagnostics",
  136. "System.Diagnostics.CodeAnalysis",
  137. "System.Diagnostics.SymbolStore",
  138. "System.Globalization",
  139. "System.IO",
  140. "System.IO.IsolatedStorage",
  141. "System.Reflection",
  142. "System.Reflection.Emit",
  143. "System.Resources",
  144. "System.Runtime",
  145. "System.Runtime.CompilerServices",
  146. "System.Runtime.ConstrainedExecution",
  147. "System.Runtime.Hosting",
  148. "System.Runtime.InteropServices",
  149. "System.Runtime.InteropServices.ComTypes",
  150. "System.Runtime.InteropServices.Expando",
  151. "System.Runtime.Remoting",
  152. "System.Runtime.Remoting.Activation",
  153. "System.Runtime.Remoting.Channels",
  154. "System.Runtime.Remoting.Contexts",
  155. "System.Runtime.Remoting.Lifetime",
  156. "System.Runtime.Remoting.Messaging",
  157. "System.Runtime.Remoting.Metadata",
  158. "System.Runtime.Remoting.Metadata.W3cXsd2001",
  159. "System.Runtime.Remoting.Proxies",
  160. "System.Runtime.Remoting.Services",
  161. "System.Runtime.Serialization",
  162. "System.Runtime.Serialization.Formatters",
  163. "System.Runtime.Serialization.Formatters.Binary",
  164. "System.Runtime.Versioning",
  165. "System.Security",
  166. "System.Security.AccessControl",
  167. "System.Security.Cryptography",
  168. "System.Security.Cryptography.X509Certificates",
  169. "System.Security.Permissions",
  170. "System.Security.Policy",
  171. "System.Security.Principal",
  172. "System.Text",
  173. "System.Threading",
  174. };
  175. string [][] types = new string[47][] {
  176. new string[6] { // Microsoft.Win32
  177. "Registry",
  178. "RegistryHive",
  179. "RegistryKey",
  180. "RegistryKeyPermissionCheck",
  181. "RegistryValueKind",
  182. "RegistryValueOptions",
  183. },
  184. new string[6] { // Microsoft.Win32.SafeHandles
  185. "CriticalHandleMinusOneIsInvalid",
  186. "CriticalHandleZeroOrMinusOneIsInvalid",
  187. "SafeFileHandle",
  188. "SafeHandleMinusOneIsInvalid",
  189. "SafeHandleZeroOrMinusOneIsInvalid",
  190. "SafeWaitHandle",
  191. },
  192. new string[174] { // System
  193. "AccessViolationException",
  194. "Action`1",
  195. "ActivationContext",
  196. "Activator",
  197. "AppDomain",
  198. "AppDomainInitializer",
  199. "AppDomainManager",
  200. "AppDomainManagerInitializationOptions",
  201. "AppDomainSetup",
  202. "AppDomainUnloadedException",
  203. "ApplicationException",
  204. "ApplicationId",
  205. "ApplicationIdentity",
  206. "ArgIterator",
  207. "ArgumentException",
  208. "ArgumentNullException",
  209. "ArgumentOutOfRangeException",
  210. "ArithmeticException",
  211. "Array",
  212. "ArraySegment`1",
  213. "ArrayTypeMismatchException",
  214. "AssemblyLoadEventArgs",
  215. "AssemblyLoadEventHandler",
  216. "AsyncCallback",
  217. "Attribute",
  218. "AttributeTargets",
  219. "AttributeUsageAttribute",
  220. "BadImageFormatException",
  221. "Base64FormattingOptions",
  222. "BitConverter",
  223. "Boolean",
  224. "Buffer",
  225. "Byte",
  226. "CLSCompliantAttribute",
  227. "CannotUnloadAppDomainException",
  228. "Char",
  229. "CharEnumerator",
  230. "Comparison`1",
  231. "Console",
  232. "ConsoleCancelEventArgs",
  233. "ConsoleCancelEventHandler",
  234. "ConsoleColor",
  235. "ConsoleKey",
  236. "ConsoleKeyInfo",
  237. "ConsoleModifiers",
  238. "ConsoleSpecialKey",
  239. "ContextBoundObject",
  240. "ContextMarshalException",
  241. "ContextStaticAttribute",
  242. "Convert",
  243. "Converter`2",
  244. "CrossAppDomainDelegate",
  245. "DBNull",
  246. "DataMisalignedException",
  247. "DateTime",
  248. "DateTimeKind",
  249. "DateTimeOffset",
  250. "DayOfWeek",
  251. "Decimal",
  252. "Delegate",
  253. "DivideByZeroException",
  254. "DllNotFoundException",
  255. "Double",
  256. "DuplicateWaitObjectException",
  257. "EntryPointNotFoundException",
  258. "Enum",
  259. "Environment",
  260. "EnvironmentVariableTarget",
  261. "EventArgs",
  262. "EventHandler",
  263. "EventHandler`1",
  264. "Exception",
  265. "ExecutionEngineException",
  266. "FieldAccessException",
  267. "FlagsAttribute",
  268. "FormatException",
  269. "GC",
  270. "GCCollectionMode",
  271. "GCNotificationStatus",
  272. "Guid",
  273. "IAppDomainSetup",
  274. "IAsyncResult",
  275. "ICloneable",
  276. "IComparable",
  277. "IComparable`1",
  278. "IConvertible",
  279. "ICustomFormatter",
  280. "IDisposable",
  281. "IEquatable`1",
  282. "IFormatProvider",
  283. "IFormattable",
  284. "IServiceProvider",
  285. "IndexOutOfRangeException",
  286. "InsufficientMemoryException",
  287. "Int16",
  288. "Int32",
  289. "Int64",
  290. "IntPtr",
  291. "InvalidCastException",
  292. "InvalidOperationException",
  293. "InvalidProgramException",
  294. "LoaderOptimization",
  295. "LoaderOptimizationAttribute",
  296. "LocalDataStoreSlot",
  297. "MTAThreadAttribute",
  298. "MarshalByRefObject",
  299. "Math",
  300. "MemberAccessException",
  301. "MethodAccessException",
  302. "MidpointRounding",
  303. "MissingFieldException",
  304. "MissingMemberException",
  305. "MissingMethodException",
  306. "ModuleHandle",
  307. "MulticastDelegate",
  308. "MulticastNotSupportedException",
  309. "NonSerializedAttribute",
  310. "NotFiniteNumberException",
  311. "NotImplementedException",
  312. "NotSupportedException",
  313. "NullReferenceException",
  314. "Nullable",
  315. "Nullable`1",
  316. "Object",
  317. "ObjectDisposedException",
  318. "ObsoleteAttribute",
  319. "OperatingSystem",
  320. "OperationCanceledException",
  321. "OutOfMemoryException",
  322. "OverflowException",
  323. "ParamArrayAttribute",
  324. "PlatformID",
  325. "PlatformNotSupportedException",
  326. "Predicate`1",
  327. "Random",
  328. "RankException",
  329. "ResolveEventArgs",
  330. "ResolveEventHandler",
  331. "RuntimeArgumentHandle",
  332. "RuntimeFieldHandle",
  333. "RuntimeMethodHandle",
  334. "RuntimeTypeHandle",
  335. "SByte",
  336. "STAThreadAttribute",
  337. "SerializableAttribute",
  338. "Single",
  339. "StackOverflowException",
  340. "String",
  341. "StringComparer",
  342. "StringComparison",
  343. "StringSplitOptions",
  344. "SystemException",
  345. "ThreadStaticAttribute",
  346. "TimeSpan",
  347. "TimeZone",
  348. "TimeoutException",
  349. "Type",
  350. "TypeCode",
  351. "TypeInitializationException",
  352. "TypeLoadException",
  353. "TypeUnloadedException",
  354. "TypedReference",
  355. "UInt16",
  356. "UInt32",
  357. "UInt64",
  358. "UIntPtr",
  359. "UnauthorizedAccessException",
  360. "UnhandledExceptionEventArgs",
  361. "UnhandledExceptionEventHandler",
  362. "ValueType",
  363. "Version",
  364. "Void",
  365. "WeakReference",
  366. "_AppDomain",
  367. },
  368. new string[22] { // System.Collections
  369. "ArrayList",
  370. "BitArray",
  371. "CaseInsensitiveComparer",
  372. "CaseInsensitiveHashCodeProvider",
  373. "CollectionBase",
  374. "Comparer",
  375. "DictionaryBase",
  376. "DictionaryEntry",
  377. "Hashtable",
  378. "ICollection",
  379. "IComparer",
  380. "IDictionary",
  381. "IDictionaryEnumerator",
  382. "IEnumerable",
  383. "IEnumerator",
  384. "IEqualityComparer",
  385. "IHashCodeProvider",
  386. "IList",
  387. "Queue",
  388. "ReadOnlyCollectionBase",
  389. "SortedList",
  390. "Stack",
  391. },
  392. new string[13] { // System.Collections.Generic
  393. "Comparer`1",
  394. "Dictionary`2",
  395. "EqualityComparer`1",
  396. "ICollection`1",
  397. "IComparer`1",
  398. "IDictionary`2",
  399. "IEnumerable`1",
  400. "IEnumerator`1",
  401. "IEqualityComparer`1",
  402. "IList`1",
  403. "KeyNotFoundException",
  404. "KeyValuePair`2",
  405. "List`1",
  406. },
  407. new string[3] { // System.Collections.ObjectModel
  408. "Collection`1",
  409. "KeyedCollection`2",
  410. "ReadOnlyCollection`1",
  411. },
  412. new string[3] { // System.Configuration.Assemblies
  413. "AssemblyHash",
  414. "AssemblyHashAlgorithm",
  415. "AssemblyVersionCompatibility",
  416. },
  417. new string[2] { // System.Deployment.Internal
  418. "InternalActivationContextHelper",
  419. "InternalApplicationIdentityHelper",
  420. },
  421. new string[14] { // System.Diagnostics
  422. "ConditionalAttribute",
  423. "DebuggableAttribute",
  424. "Debugger",
  425. "DebuggerBrowsableAttribute",
  426. "DebuggerBrowsableState",
  427. "DebuggerDisplayAttribute",
  428. "DebuggerHiddenAttribute",
  429. "DebuggerNonUserCodeAttribute",
  430. "DebuggerStepThroughAttribute",
  431. "DebuggerStepperBoundaryAttribute",
  432. "DebuggerTypeProxyAttribute",
  433. "DebuggerVisualizerAttribute",
  434. "StackFrame",
  435. "StackTrace",
  436. },
  437. new string[1] { // System.Diagnostics.CodeAnalysis
  438. "SuppressMessageAttribute",
  439. },
  440. new string[15] { // System.Diagnostics.SymbolStore
  441. "ISymbolBinder",
  442. "ISymbolBinder1",
  443. "ISymbolDocument",
  444. "ISymbolDocumentWriter",
  445. "ISymbolMethod",
  446. "ISymbolNamespace",
  447. "ISymbolReader",
  448. "ISymbolScope",
  449. "ISymbolVariable",
  450. "ISymbolWriter",
  451. "SymAddressKind",
  452. "SymDocumentType",
  453. "SymLanguageType",
  454. "SymLanguageVendor",
  455. "SymbolToken",
  456. },
  457. new string[37] { // System.Globalization
  458. "Calendar",
  459. "CalendarAlgorithmType",
  460. "CalendarWeekRule",
  461. "CharUnicodeInfo",
  462. "ChineseLunisolarCalendar",
  463. "CompareInfo",
  464. "CompareOptions",
  465. "CultureInfo",
  466. "CultureTypes",
  467. "DateTimeFormatInfo",
  468. "DateTimeStyles",
  469. "DaylightTime",
  470. "DigitShapes",
  471. "EastAsianLunisolarCalendar",
  472. "GregorianCalendar",
  473. "GregorianCalendarTypes",
  474. "HebrewCalendar",
  475. "HijriCalendar",
  476. "IdnMapping",
  477. "JapaneseCalendar",
  478. "JapaneseLunisolarCalendar",
  479. "JulianCalendar",
  480. "KoreanCalendar",
  481. "KoreanLunisolarCalendar",
  482. "NumberFormatInfo",
  483. "NumberStyles",
  484. "PersianCalendar",
  485. "RegionInfo",
  486. "SortKey",
  487. "StringInfo",
  488. "TaiwanCalendar",
  489. "TaiwanLunisolarCalendar",
  490. "TextElementEnumerator",
  491. "TextInfo",
  492. "ThaiBuddhistCalendar",
  493. "UmAlQuraCalendar",
  494. "UnicodeCategory",
  495. },
  496. new string[35] { // System.IO
  497. "BinaryReader",
  498. "BinaryWriter",
  499. "BufferedStream",
  500. "Directory",
  501. "DirectoryInfo",
  502. "DirectoryNotFoundException",
  503. "DriveInfo",
  504. "DriveNotFoundException",
  505. "DriveType",
  506. "EndOfStreamException",
  507. "File",
  508. "FileAccess",
  509. "FileAttributes",
  510. "FileInfo",
  511. "FileLoadException",
  512. "FileMode",
  513. "FileNotFoundException",
  514. "FileOptions",
  515. "FileShare",
  516. "FileStream",
  517. "FileSystemInfo",
  518. "IOException",
  519. "MemoryStream",
  520. "Path",
  521. "PathTooLongException",
  522. "SearchOption",
  523. "SeekOrigin",
  524. "Stream",
  525. "StreamReader",
  526. "StreamWriter",
  527. "StringReader",
  528. "StringWriter",
  529. "TextReader",
  530. "TextWriter",
  531. "UnmanagedMemoryStream",
  532. },
  533. new string[6] { // System.IO.IsolatedStorage
  534. "INormalizeForIsolatedStorage",
  535. "IsolatedStorage",
  536. "IsolatedStorageException",
  537. "IsolatedStorageFile",
  538. "IsolatedStorageFileStream",
  539. "IsolatedStorageScope",
  540. },
  541. new string[76] { // System.Reflection
  542. "AmbiguousMatchException",
  543. "Assembly",
  544. "AssemblyAlgorithmIdAttribute",
  545. "AssemblyCompanyAttribute",
  546. "AssemblyConfigurationAttribute",
  547. "AssemblyCopyrightAttribute",
  548. "AssemblyCultureAttribute",
  549. "AssemblyDefaultAliasAttribute",
  550. "AssemblyDelaySignAttribute",
  551. "AssemblyDescriptionAttribute",
  552. "AssemblyFileVersionAttribute",
  553. "AssemblyFlagsAttribute",
  554. "AssemblyInformationalVersionAttribute",
  555. "AssemblyKeyFileAttribute",
  556. "AssemblyKeyNameAttribute",
  557. "AssemblyName",
  558. "AssemblyNameFlags",
  559. "AssemblyNameProxy",
  560. "AssemblyProductAttribute",
  561. "AssemblyTitleAttribute",
  562. "AssemblyTrademarkAttribute",
  563. "AssemblyVersionAttribute",
  564. "Binder",
  565. "BindingFlags",
  566. "CallingConventions",
  567. "ConstructorInfo",
  568. "CustomAttributeData",
  569. "CustomAttributeFormatException",
  570. "CustomAttributeNamedArgument",
  571. "CustomAttributeTypedArgument",
  572. "DefaultMemberAttribute",
  573. "EventAttributes",
  574. "EventInfo",
  575. "ExceptionHandlingClause",
  576. "ExceptionHandlingClauseOptions",
  577. "FieldAttributes",
  578. "FieldInfo",
  579. "GenericParameterAttributes",
  580. "ICustomAttributeProvider",
  581. "IReflect",
  582. "ImageFileMachine",
  583. "InterfaceMapping",
  584. "InvalidFilterCriteriaException",
  585. "LocalVariableInfo",
  586. "ManifestResourceInfo",
  587. "MemberFilter",
  588. "MemberInfo",
  589. "MemberTypes",
  590. "MethodAttributes",
  591. "MethodBase",
  592. "MethodBody",
  593. "MethodImplAttributes",
  594. "MethodInfo",
  595. "Missing",
  596. "Module",
  597. "ModuleResolveEventHandler",
  598. "ObfuscateAssemblyAttribute",
  599. "ObfuscationAttribute",
  600. "ParameterAttributes",
  601. "ParameterInfo",
  602. "ParameterModifier",
  603. "Pointer",
  604. "PortableExecutableKinds",
  605. "ProcessorArchitecture",
  606. "PropertyAttributes",
  607. "PropertyInfo",
  608. "ReflectionTypeLoadException",
  609. "ResourceAttributes",
  610. "ResourceLocation",
  611. "StrongNameKeyPair",
  612. "TargetException",
  613. "TargetInvocationException",
  614. "TargetParameterCountException",
  615. "TypeAttributes",
  616. "TypeDelegator",
  617. "TypeFilter",
  618. },
  619. new string[37] { // System.Reflection.Emit
  620. "AssemblyBuilder",
  621. "AssemblyBuilderAccess",
  622. "ConstructorBuilder",
  623. "CustomAttributeBuilder",
  624. "DynamicILInfo",
  625. "DynamicMethod",
  626. "EnumBuilder",
  627. "EventBuilder",
  628. "EventToken",
  629. "FieldBuilder",
  630. "FieldToken",
  631. "FlowControl",
  632. "GenericTypeParameterBuilder",
  633. "ILGenerator",
  634. "Label",
  635. "LocalBuilder",
  636. "MethodBuilder",
  637. "MethodRental",
  638. "MethodToken",
  639. "ModuleBuilder",
  640. "OpCode",
  641. "OpCodeType",
  642. "OpCodes",
  643. "OperandType",
  644. "PEFileKinds",
  645. "PackingSize",
  646. "ParameterBuilder",
  647. "ParameterToken",
  648. "PropertyBuilder",
  649. "PropertyToken",
  650. "SignatureHelper",
  651. "SignatureToken",
  652. "StackBehaviour",
  653. "StringToken",
  654. "TypeBuilder",
  655. "TypeToken",
  656. "UnmanagedMarshal",
  657. },
  658. new string[11] { // System.Resources
  659. "IResourceReader",
  660. "IResourceWriter",
  661. "MissingManifestResourceException",
  662. "MissingSatelliteAssemblyException",
  663. "NeutralResourcesLanguageAttribute",
  664. "ResourceManager",
  665. "ResourceReader",
  666. "ResourceSet",
  667. "ResourceWriter",
  668. "SatelliteContractVersionAttribute",
  669. "UltimateResourceFallbackLocation",
  670. },
  671. new string[3] { // System.Runtime
  672. "GCLatencyMode",
  673. "GCSettings",
  674. "MemoryFailPoint",
  675. },
  676. new string[50] { // System.Runtime.CompilerServices
  677. "AccessedThroughPropertyAttribute",
  678. "CallConvCdecl",
  679. "CallConvFastcall",
  680. "CallConvStdcall",
  681. "CallConvThiscall",
  682. "CompilationRelaxations",
  683. "CompilationRelaxationsAttribute",
  684. "CompilerGeneratedAttribute",
  685. "CompilerGlobalScopeAttribute",
  686. "CompilerMarshalOverride",
  687. "CustomConstantAttribute",
  688. "DateTimeConstantAttribute",
  689. "DecimalConstantAttribute",
  690. "DefaultDependencyAttribute",
  691. "DependencyAttribute",
  692. "DiscardableAttribute",
  693. "FixedAddressValueTypeAttribute",
  694. "FixedBufferAttribute",
  695. "HasCopySemanticsAttribute",
  696. "IDispatchConstantAttribute",
  697. "IUnknownConstantAttribute",
  698. "IndexerNameAttribute",
  699. "InternalsVisibleToAttribute",
  700. "IsBoxed",
  701. "IsByValue",
  702. "IsConst",
  703. "IsCopyConstructed",
  704. "IsExplicitlyDereferenced",
  705. "IsImplicitlyDereferenced",
  706. "IsJitIntrinsic",
  707. "IsLong",
  708. "IsPinned",
  709. "IsSignUnspecifiedByte",
  710. "IsUdtReturn",
  711. "IsVolatile",
  712. "LoadHint",
  713. "MethodCodeType",
  714. "MethodImplAttribute",
  715. "MethodImplOptions",
  716. "NativeCppClassAttribute",
  717. "RequiredAttributeAttribute",
  718. "RuntimeCompatibilityAttribute",
  719. "RuntimeHelpers",
  720. "RuntimeWrappedException",
  721. "ScopelessEnumAttribute",
  722. "SpecialNameAttribute",
  723. "StringFreezingAttribute",
  724. "SuppressIldasmAttribute",
  725. "TypeForwardedToAttribute",
  726. "UnsafeValueTypeAttribute",
  727. },
  728. new string[5] { // System.Runtime.ConstrainedExecution
  729. "Cer",
  730. "Consistency",
  731. "CriticalFinalizerObject",
  732. "PrePrepareMethodAttribute",
  733. "ReliabilityContractAttribute",
  734. },
  735. new string[2] { // System.Runtime.Hosting
  736. "ActivationArguments",
  737. "ApplicationActivator",
  738. },
  739. new string[166] { // System.Runtime.InteropServices
  740. "AllowReversePInvokeCallsAttribute",
  741. "ArrayWithOffset",
  742. "AssemblyRegistrationFlags",
  743. "AutomationProxyAttribute",
  744. "BINDPTR",
  745. "BIND_OPTS",
  746. "BStrWrapper",
  747. "BestFitMappingAttribute",
  748. "CALLCONV",
  749. "COMException",
  750. "CONNECTDATA",
  751. "CallingConvention",
  752. "CharSet",
  753. "ClassInterfaceAttribute",
  754. "ClassInterfaceType",
  755. "CoClassAttribute",
  756. "ComAliasNameAttribute",
  757. "ComCompatibleVersionAttribute",
  758. "ComConversionLossAttribute",
  759. "ComDefaultInterfaceAttribute",
  760. "ComEventInterfaceAttribute",
  761. "ComImportAttribute",
  762. "ComInterfaceType",
  763. "ComMemberType",
  764. "ComRegisterFunctionAttribute",
  765. "ComSourceInterfacesAttribute",
  766. "ComUnregisterFunctionAttribute",
  767. "ComVisibleAttribute",
  768. "CriticalHandle",
  769. "CurrencyWrapper",
  770. "DESCKIND",
  771. "DISPPARAMS",
  772. "DefaultCharSetAttribute",
  773. "DispIdAttribute",
  774. "DispatchWrapper",
  775. "DllImportAttribute",
  776. "ELEMDESC",
  777. "EXCEPINFO",
  778. "ErrorWrapper",
  779. "ExporterEventKind",
  780. "ExtensibleClassFactory",
  781. "ExternalException",
  782. "FILETIME",
  783. "FUNCDESC",
  784. "FUNCFLAGS",
  785. "FUNCKIND",
  786. "FieldOffsetAttribute",
  787. "GCHandle",
  788. "GCHandleType",
  789. "GuidAttribute",
  790. "HandleRef",
  791. "ICustomAdapter",
  792. "ICustomFactory",
  793. "ICustomMarshaler",
  794. "IDLDESC",
  795. "IDLFLAG",
  796. "IDispatchImplAttribute",
  797. "IDispatchImplType",
  798. "IMPLTYPEFLAGS",
  799. "INVOKEKIND",
  800. "IRegistrationServices",
  801. "ITypeLibConverter",
  802. "ITypeLibExporterNameProvider",
  803. "ITypeLibExporterNotifySink",
  804. "ITypeLibImporterNotifySink",
  805. "ImportedFromTypeLibAttribute",
  806. "ImporterEventKind",
  807. "InAttribute",
  808. "InterfaceTypeAttribute",
  809. "InvalidComObjectException",
  810. "InvalidOleVariantTypeException",
  811. "LCIDConversionAttribute",
  812. "LIBFLAGS",
  813. "LayoutKind",
  814. "Marshal",
  815. "MarshalAsAttribute",
  816. "MarshalDirectiveException",
  817. "ObjectCreationDelegate",
  818. "OptionalAttribute",
  819. "OutAttribute",
  820. "PARAMDESC",
  821. "PARAMFLAG",
  822. "PreserveSigAttribute",
  823. "PrimaryInteropAssemblyAttribute",
  824. "ProgIdAttribute",
  825. "RegistrationClassContext",
  826. "RegistrationConnectionType",
  827. "RegistrationServices",
  828. "RuntimeEnvironment",
  829. "SEHException",
  830. "STATSTG",
  831. "SYSKIND",
  832. "SafeArrayRankMismatchException",
  833. "SafeArrayTypeMismatchException",
  834. "SafeHandle",
  835. "SetWin32ContextInIDispatchAttribute",
  836. "StructLayoutAttribute",
  837. "TYPEATTR",
  838. "TYPEDESC",
  839. "TYPEFLAGS",
  840. "TYPEKIND",
  841. "TYPELIBATTR",
  842. "TypeLibConverter",
  843. "TypeLibExporterFlags",
  844. "TypeLibFuncAttribute",
  845. "TypeLibFuncFlags",
  846. "TypeLibImportClassAttribute",
  847. "TypeLibImporterFlags",
  848. "TypeLibTypeAttribute",
  849. "TypeLibTypeFlags",
  850. "TypeLibVarAttribute",
  851. "TypeLibVarFlags",
  852. "TypeLibVersionAttribute",
  853. "UCOMIBindCtx",
  854. "UCOMIConnectionPoint",
  855. "UCOMIConnectionPointContainer",
  856. "UCOMIEnumConnectionPoints",
  857. "UCOMIEnumConnections",
  858. "UCOMIEnumMoniker",
  859. "UCOMIEnumString",
  860. "UCOMIEnumVARIANT",
  861. "UCOMIMoniker",
  862. "UCOMIPersistFile",
  863. "UCOMIRunningObjectTable",
  864. "UCOMIStream",
  865. "UCOMITypeComp",
  866. "UCOMITypeInfo",
  867. "UCOMITypeLib",
  868. "UnknownWrapper",
  869. "UnmanagedFunctionPointerAttribute",
  870. "UnmanagedType",
  871. "VARDESC",
  872. "VARFLAGS",
  873. "VarEnum",
  874. "VariantWrapper",
  875. "_Activator",
  876. "_Assembly",
  877. "_AssemblyBuilder",
  878. "_AssemblyName",
  879. "_Attribute",
  880. "_ConstructorBuilder",
  881. "_ConstructorInfo",
  882. "_CustomAttributeBuilder",
  883. "_EnumBuilder",
  884. "_EventBuilder",
  885. "_EventInfo",
  886. "_Exception",
  887. "_FieldBuilder",
  888. "_FieldInfo",
  889. "_ILGenerator",
  890. "_LocalBuilder",
  891. "_MemberInfo",
  892. "_MethodBase",
  893. "_MethodBuilder",
  894. "_MethodInfo",
  895. "_MethodRental",
  896. "_Module",
  897. "_ModuleBuilder",
  898. "_ParameterBuilder",
  899. "_ParameterInfo",
  900. "_PropertyBuilder",
  901. "_PropertyInfo",
  902. "_SignatureHelper",
  903. "_Thread",
  904. "_Type",
  905. "_TypeBuilder",
  906. },
  907. new string[46] { // System.Runtime.InteropServices.ComTypes
  908. "BINDPTR",
  909. "BIND_OPTS",
  910. "CALLCONV",
  911. "CONNECTDATA",
  912. "DESCKIND",
  913. "DISPPARAMS",
  914. "ELEMDESC",
  915. "EXCEPINFO",
  916. "FILETIME",
  917. "FUNCDESC",
  918. "FUNCFLAGS",
  919. "FUNCKIND",
  920. "IBindCtx",
  921. "IConnectionPoint",
  922. "IConnectionPointContainer",
  923. "IDLDESC",
  924. "IDLFLAG",
  925. "IEnumConnectionPoints",
  926. "IEnumConnections",
  927. "IEnumMoniker",
  928. "IEnumString",
  929. "IEnumVARIANT",
  930. "IMPLTYPEFLAGS",
  931. "IMoniker",
  932. "INVOKEKIND",
  933. "IPersistFile",
  934. "IRunningObjectTable",
  935. "IStream",
  936. "ITypeComp",
  937. "ITypeInfo",
  938. "ITypeInfo2",
  939. "ITypeLib",
  940. "ITypeLib2",
  941. "LIBFLAGS",
  942. "PARAMDESC",
  943. "PARAMFLAG",
  944. "STATSTG",
  945. "SYSKIND",
  946. "TYPEATTR",
  947. "TYPEDESC",
  948. "TYPEFLAGS",
  949. "TYPEKIND",
  950. "TYPELIBATTR",
  951. "VARDESC",
  952. "VARFLAGS",
  953. "VARKIND",
  954. },
  955. new string[1] { // System.Runtime.InteropServices.Expando
  956. "IExpando",
  957. },
  958. new string[20] { // System.Runtime.Remoting
  959. "ActivatedClientTypeEntry",
  960. "ActivatedServiceTypeEntry",
  961. "CustomErrorsModes",
  962. "IChannelInfo",
  963. "IEnvoyInfo",
  964. "IObjectHandle",
  965. "IRemotingTypeInfo",
  966. "InternalRemotingServices",
  967. "ObjRef",
  968. "ObjectHandle",
  969. "RemotingConfiguration",
  970. "RemotingException",
  971. "RemotingServices",
  972. "RemotingTimeoutException",
  973. "ServerException",
  974. "SoapServices",
  975. "TypeEntry",
  976. "WellKnownClientTypeEntry",
  977. "WellKnownObjectMode",
  978. "WellKnownServiceTypeEntry",
  979. },
  980. new string[5] { // System.Runtime.Remoting.Activation
  981. "ActivatorLevel",
  982. "IActivator",
  983. "IConstructionCallMessage",
  984. "IConstructionReturnMessage",
  985. "UrlAttribute",
  986. },
  987. new string[29] { // System.Runtime.Remoting.Channels
  988. "BaseChannelObjectWithProperties",
  989. "BaseChannelSinkWithProperties",
  990. "BaseChannelWithProperties",
  991. "ChannelDataStore",
  992. "ChannelServices",
  993. "ClientChannelSinkStack",
  994. "IChannel",
  995. "IChannelDataStore",
  996. "IChannelReceiver",
  997. "IChannelReceiverHook",
  998. "IChannelSender",
  999. "IChannelSinkBase",
  1000. "IClientChannelSink",
  1001. "IClientChannelSinkProvider",
  1002. "IClientChannelSinkStack",
  1003. "IClientFormatterSink",
  1004. "IClientFormatterSinkProvider",
  1005. "IClientResponseChannelSinkStack",
  1006. "ISecurableChannel",
  1007. "IServerChannelSink",
  1008. "IServerChannelSinkProvider",
  1009. "IServerChannelSinkStack",
  1010. "IServerFormatterSinkProvider",
  1011. "IServerResponseChannelSinkStack",
  1012. "ITransportHeaders",
  1013. "ServerChannelSinkStack",
  1014. "ServerProcessing",
  1015. "SinkProviderData",
  1016. "TransportHeaders",
  1017. },
  1018. new string[15] { // System.Runtime.Remoting.Contexts
  1019. "Context",
  1020. "ContextAttribute",
  1021. "ContextProperty",
  1022. "CrossContextDelegate",
  1023. "IContextAttribute",
  1024. "IContextProperty",
  1025. "IContextPropertyActivator",
  1026. "IContributeClientContextSink",
  1027. "IContributeDynamicSink",
  1028. "IContributeEnvoySink",
  1029. "IContributeObjectSink",
  1030. "IContributeServerContextSink",
  1031. "IDynamicMessageSink",
  1032. "IDynamicProperty",
  1033. "SynchronizationAttribute",
  1034. },
  1035. new string[5] { // System.Runtime.Remoting.Lifetime
  1036. "ClientSponsor",
  1037. "ILease",
  1038. "ISponsor",
  1039. "LeaseState",
  1040. "LifetimeServices",
  1041. },
  1042. new string[24] { // System.Runtime.Remoting.Messaging
  1043. "AsyncResult",
  1044. "CallContext",
  1045. "ConstructionCall",
  1046. "ConstructionResponse",
  1047. "Header",
  1048. "HeaderHandler",
  1049. "ILogicalThreadAffinative",
  1050. "IMessage",
  1051. "IMessageCtrl",
  1052. "IMessageSink",
  1053. "IMethodCallMessage",
  1054. "IMethodMessage",
  1055. "IMethodReturnMessage",
  1056. "IRemotingFormatter",
  1057. "InternalMessageWrapper",
  1058. "LogicalCallContext",
  1059. "MessageSurrogateFilter",
  1060. "MethodCall",
  1061. "MethodCallMessageWrapper",
  1062. "MethodResponse",
  1063. "MethodReturnMessageWrapper",
  1064. "OneWayAttribute",
  1065. "RemotingSurrogateSelector",
  1066. "ReturnMessage",
  1067. },
  1068. new string[7] { // System.Runtime.Remoting.Metadata
  1069. "SoapAttribute",
  1070. "SoapFieldAttribute",
  1071. "SoapMethodAttribute",
  1072. "SoapOption",
  1073. "SoapParameterAttribute",
  1074. "SoapTypeAttribute",
  1075. "XmlFieldOrderOption",
  1076. },
  1077. new string[32] { // System.Runtime.Remoting.Metadata.W3cXsd2001
  1078. "ISoapXsd",
  1079. "SoapAnyUri",
  1080. "SoapBase64Binary",
  1081. "SoapDate",
  1082. "SoapDateTime",
  1083. "SoapDay",
  1084. "SoapDuration",
  1085. "SoapEntities",
  1086. "SoapEntity",
  1087. "SoapHexBinary",
  1088. "SoapId",
  1089. "SoapIdref",
  1090. "SoapIdrefs",
  1091. "SoapInteger",
  1092. "SoapLanguage",
  1093. "SoapMonth",
  1094. "SoapMonthDay",
  1095. "SoapName",
  1096. "SoapNcName",
  1097. "SoapNegativeInteger",
  1098. "SoapNmtoken",
  1099. "SoapNmtokens",
  1100. "SoapNonNegativeInteger",
  1101. "SoapNonPositiveInteger",
  1102. "SoapNormalizedString",
  1103. "SoapNotation",
  1104. "SoapPositiveInteger",
  1105. "SoapQName",
  1106. "SoapTime",
  1107. "SoapToken",
  1108. "SoapYear",
  1109. "SoapYearMonth",
  1110. },
  1111. new string[2] { // System.Runtime.Remoting.Proxies
  1112. "ProxyAttribute",
  1113. "RealProxy",
  1114. },
  1115. new string[3] { // System.Runtime.Remoting.Services
  1116. "EnterpriseServicesHelper",
  1117. "ITrackingHandler",
  1118. "TrackingServices",
  1119. },
  1120. new string[26] { // System.Runtime.Serialization
  1121. "Formatter",
  1122. "FormatterConverter",
  1123. "FormatterServices",
  1124. "IDeserializationCallback",
  1125. "IFormatter",
  1126. "IFormatterConverter",
  1127. "IObjectReference",
  1128. "ISerializable",
  1129. "ISerializationSurrogate",
  1130. "ISurrogateSelector",
  1131. "ObjectIDGenerator",
  1132. "ObjectManager",
  1133. "OnDeserializedAttribute",
  1134. "OnDeserializingAttribute",
  1135. "OnSerializedAttribute",
  1136. "OnSerializingAttribute",
  1137. "OptionalFieldAttribute",
  1138. "SerializationBinder",
  1139. "SerializationEntry",
  1140. "SerializationException",
  1141. "SerializationInfo",
  1142. "SerializationInfoEnumerator",
  1143. "SerializationObjectManager",
  1144. "StreamingContext",
  1145. "StreamingContextStates",
  1146. "SurrogateSelector",
  1147. },
  1148. new string[10] { // System.Runtime.Serialization.Formatters
  1149. "FormatterAssemblyStyle",
  1150. "FormatterTypeStyle",
  1151. "IFieldInfo",
  1152. "ISoapMessage",
  1153. "InternalRM",
  1154. "InternalST",
  1155. "ServerFault",
  1156. "SoapFault",
  1157. "SoapMessage",
  1158. "TypeFilterLevel",
  1159. },
  1160. new string[1] { // System.Runtime.Serialization.Formatters.Binary
  1161. "BinaryFormatter",
  1162. },
  1163. new string[4] { // System.Runtime.Versioning
  1164. "ResourceConsumptionAttribute",
  1165. "ResourceExposureAttribute",
  1166. "ResourceScope",
  1167. "VersioningHelper",
  1168. },
  1169. new string[29] { // System.Security
  1170. "AllowPartiallyTrustedCallersAttribute",
  1171. "CodeAccessPermission",
  1172. "HostProtectionException",
  1173. "HostSecurityManager",
  1174. "HostSecurityManagerOptions",
  1175. "IEvidenceFactory",
  1176. "IPermission",
  1177. "ISecurityEncodable",
  1178. "ISecurityPolicyEncod…