Patent ID: 8032859

Claim:
A system for extending data types in software, comprising: a processor; system memory; an extension unit that extends an arbitrary preexisting base data type, wherein the base data type comprises at least one of a predefined high-level programming language data type and a constructed data type, the preexisting base data type having at least one member, wherein the base data type being extended supplies supplemental features and functions to those of the base data type, wherein the type extensions of the base data type are accessible in the high-level programming language using keywords according to a predefined syntax; and a supplemental member that is included with the extension unit and that provides additional functionality to the preexisting base data type, wherein the supplemental member is introduced using one or more portions of attached metadata, the metadata comprising custom attributes and annotations, and wherein the supplemental member is configured to implement new interfaces using a runtime environment that allows an interface to be registered at runtime using one or more dynamic virtual method tables, the runtime registration allowing partial types to implement new interfaces across one or more assemblies.