The detailed content of each Library, in terms of the types it provides and the changes it makes to types in other Libraries, is provided in XML form. This section provides a brief description of each Library's purpose, as well as specifying the features of the CLI required by each Library beyond those required by the Kernel Profile.
5.1 Runtime Infrastructure LibraryThe Runtime Infrastructure Library is part of the Kernel Profile. It provides the services needed by a compiler to target the CLI and the facilities needed to dynamically load types from a stream in the file format specified in Partition II, section 23. For example, it provides System.BadImageFormatException, which is thrown when a stream that does not have the correct format is loaded. Name used in XML: RuntimeInfrastructure CLI Feature Requirement: None 5.2 Base Class LibraryThe Base Class Library is part of the Kernel Profile. It is a simple runtime library for modern programming languages. It serves as the Standard for the runtime library for the language C# as well as one of the CLI Standard Libraries. It provides types to represent the built-in data types of the CLI, simple file access, custom attributes, security attributes, string manipulation, formatting, streams, collections, and so forth Name used in XML: BCL CLI Feature Requirement: None
5.3 Network LibraryThe Network Library is part of the Compact Profile. It provides simple networking services, including direct access to network ports as well as HTTP support. Name used in XML: Networking CLI Feature Requirement: None 5.4 Reflection LibraryThe Reflection Library is part of the Compact Profile. It provides the ability to examine the structure of types, create instances of types, and invoke methods on types, all based on a description of the type. Name used in XML: Reflection CLI Feature Requirement: Must support Runtime Infrastructure; see Partition IV, section 5.1. 5.5 XML LibraryThe XML Library is part of the Compact Profile. It provides a simple "pull-style" parser for XML. It is designed for resource-constrained devices, yet provides a simple user model. A conforming implementation of the CLI that includes the XML Library shall also implement the Network Library (see Partition IV, section 5.3). Name used in XML: XML CLI Feature Requirement: None 5.6 Extended Numerics LibraryThe Extended Numerics Library is not part of any Profile but can be supplied as part of any CLI implementation. It provides the support for floating point (System.Single, System.Double) and extended-precision (System.Decimal) data types. Like the Base Class Library, this Library is directly referenced by the C# Standard. NOTE Programmers who use this library will benefit if implementations specify which arithmetic operations on these data types are implemented primarily through hardware support. RATIONALE The Extended Numerics Library is kept separate because some commonly available processors do not provide direct support for the data types. While software emulation can be provided, the performance difference is often so large (1,000-fold or more) that it is unreasonable to build software using floating point operations without being aware of whether the underlying implementation is hardware-based. CLI Feature Requirement: Floating Point; see Partition IV, section 4.1.1. 5.7 Extended Array LibraryThis Library is not part of any Profile but can be supplied as part of any CLI implementation. It provides support for non-vector arrays that is, arrays that have more than one dimension, and arrays that have non-zero lower bounds. CLI Feature Requirement: Non-vector Arrays; see Partition IV, section 4.1.2. |