1. A system for annotating instances of objects, comprising: a memory having stored therein computer-executable instructions; a computer processor that executes the computer-executable instructions; an agent that configures a plurality of object instances of an object to be annotated by annotations of different types, wherein an annotation of at least one object instance is a value of a specified type; and an interface configured to provide a set of annotation operations associated with said annotation of the at least one object instance, wherein said set of annotation operations are configured to annotate data associated with said annotation of the at least one object instance using a type corresponding to said specified type, wherein said set of annotation operations comprises a retrieve operation, wherein said retrieve operation is configurable to retrieve annotations according to a weakly typed scenario and a strongly typed scenario, wherein a particular type is used as a search key in the weakly typed scenario, and wherein a generic parameter is used as the search key in the strongly typed scenario.