System and method for extending functionality of a class object
AssigneeMicrosoft Corporation
InventorsJoseph P. Fernando, Christopher L. Fraley
Life of this patent
Estimating the term…
Abstract
An extensible object model enables extending the standard methods and/or properties of an extensible object for an application through an extension object proffered at run time by an extension package Information about the extension package is registered in a database when the package is installed, and the database is used to resolve references to the extended methods and/or properties upon execution of the application. In one aspect of the invention, the extension object is cached when first referenced and subsequent references to the extension while the application is executing are resolved to the cache.
Claims9
A system for extending functionality of a class object, comprising:
- a processing unit;
- a system memory in communication with the processing unit via a system bus;
- a computer-readable medium in communication with the processing unit via the system bus;
- and
- an extensible object model executed from the computer-readable medium by the processing unit, wherein the extensible object model determines whether a requested functionality is inherent in the class object, and wherein the extensible object model causes the processing unit to create an extension object from an existing extension package when a requested functionality is not inherent in the class object, and wherein the extension object extends the class object to provide the requested functionality, and wherein the extensible object model further causes the processing unit to notify the extension object when the extension is deleted, and wherein the extensible object model further causes the processing unit to register the extension package in an extension database stored on the computer-readable medium, and wherein the extensible object model further causes the processing unit to store the extension object in system memory when the corresponding extension is first referenced, and wherein the extensible object model further causes the processing unit to create the extension object from the extension package by causing the processing unit to create an extension provider object and causes the processing unit to create the extension from the extension provider object.
A computer-readable medium having stored thereon computer-executable components comprising:
- an extensible object;
- an extension database having an entry for an extension for the extensible object;
- and
- an existing extension package having an interface for obtaining an extension object that provides the extension for the extensible object, wherein the extensible package determines whether a requested functionality is inherent in the class object;
- an extensible object model, wherein the extensible object model further causes the processing unit to notify the extension object when the extension is deleted, and wherein the extensible object model further causes the processing unit to register the extension package in an extension database stored on the computer-readable medium, and wherein the extensible object model further causes the processing unit to store the extension object in system memory when the corresponding extension is first referenced, and wherein the extensible object model further causes the processing unit to create the extension object from the extension package by causing the processing unit to create an extension provider object and causes the processing unit to create the extension from the extension provider object.
A method for extending functionality of a class object in a run-time environment, comprising:
- determining whether a requested functionality is inherent in the class object;
- receiving a request from an application for functionality that is not inherent in the class object;
- determining if the functionality is available in a first extension object;
- obtaining an existing extension package having computer-executable instructions associated with the extension object functionality, wherein the extension package proffers an extension provider object when the functionality is requested, and wherein the extensible object model further causes the processing unit to notify the extension object when the extension is deleted, and wherein the extensible object model further causes the processing unit to register the extension package in an extension database stored on the computer-readable medium, and wherein the extensible object model further causes the processing unit to store the extension object in system memory when the corresponding extension is first referenced, and wherein the extensible object model further causes the processing unit to create the extension object from the extension package by causing the processing unit to create an extension provider object and causes the processing unit to create the extension from the extension provider object,
- specifying parameters to the extension provider object to create a second extension object;
- and
- directing the request to the second extension object.
Dependencies are inferred from the claim text.