Attempts to get a value for the specified attachable property in the specified store, returning a generic output form. Does not throw an exception if the specific attachable property does not exist in the store.

Most functionality in this class relies on an attached property store, which generally implements the IAttachedPropertyStore interface. However, parameters for passing the store into AttachablePropertyServices are not typed as the interface and are instead typed as object. This is because you can pass an arbitrary object, and in this case, an internal default attachable property store is used.

Best practice for the arbitrary object is to pass the object that would otherwise be associated with the store. Do not pass a null reference (Nothing in Visual Basic) to indicate that you do not have an IAttachedPropertyStore to use. Passing a null reference (Nothing in Visual Basic) enters code paths that do nothing. Passing an object that is non-null, but evaluates as a null reference (Nothing in Visual Basic) on an attempted IAttachedPropertyStore cast, uses the default attachable property store.