IIdentifiable Interface
Signifies a class that can be identified

Namespace: MARC.Everest.Interfaces
Assembly: MARC.Everest.Phone (in MARC.Everest.Phone.dll) Version: 1.5.0.0 (1.5.0)

Syntax

C#

public interface IIdentifiable : IGraphable

Remarks

GPMR will attach this interface to any RMIM class which is identifiable by only one identifier. It will not attach this interface to classes which permit the use of multiple identifiers

Examples

The following example will iterate through any instance and will print out all identifiers contained within the message

Get all Identified Objects

public static void PrintIds(IGraphable g)
{
    // Can't scan a null object 
    if(g == null) return;

    Type gType = g.GetType();
    foreach(PropertyInfo pi in gType.GetProperties(BindingFlags.Instance | BindingFlags.Public))
    {
        object value = pi.GetValue(g, null);

        // Don't report null objects 
        if(value == null)
            continue;

        IIdentifiable identifiableObject = value as IIdentifiable;
        ISetIdentifiable setIdentifiableObject = value as ISetIdentifiable;
        if(identifiableObject != null)
            Console.WriteLine("{0} : {1}@{2}", pi.Name, identifiableObject.Id.Root, identifiableObject.Id.Extension);
        else if(setIdentifiableObject != null)
        {
            foreach(var ii in setIdentifiableObject.Id)
                Console.WriteLine("{0} : {1}@{2}", pi.Name, ii.Root, ii.Extension);
        }
        // Scan type
        PrintIds(value as IGraphable);
    }
}

Version Information

Everest Compact Framework

Supported in: 1.2 Compact

Everest Framework

Supported in: 1.2, 1.0

See Also