MARC.Everest.Interfaces Namespace
This namespace contains interfaces that are implemented by RMIM classes


Public interfaceIGraphable This interface is an empty interface used to identify that an object can be "graphed" into a particular ITS version.
Public interfaceIIdentifiable Signifies a class that can be identified
Public interfaceIImplementsAcceptAckCode <T > Identifies a class as implementing accept ack code
Public interfaceIImplementsMoodCode Identifies that a class or structure has a mood code
Public interfaceIImplementsMoodCode <T > Identifies the the class or structure has a mood code
Public interfaceIImplementsNullFlavor Identifies that a class has a nullflavor
Public interfaceIImplementsProcessingCode <T > Implements IProcessingCode
Public interfaceIImplementsProfileId Represents a class that implements a get of a profile identifier
Public interfaceIImplementsReasonCode A class implements a reason code
Public interfaceIImplementsReasonCode <T > Implements a reason code
Public interfaceIImplementsResponseModeCode <T > Summary of IImplementsResponseModeCode
Public interfaceIImplementsStatusCode Does this implement status code with no generics?
Public interfaceIImplementsStatusCode <T > Signifies a class that implements a state machine
Public interfaceIImplementsText Identifies that a class implements a property named "Text"
Public interfaceIImplementsTitle Identifies a class that has a "Title" property
Public interfaceIImplementsTypeId Implements the TypeId property to determine the type of the message
Public interfaceIInteraction Identifies a type as being an interaction
Public interfaceISetIdentifiable Signifies a class that can be identified with a set of identifiers


These interfaces are implemented by RMIM classes and assigned by GPMR. The purpose of the interfaces are to facilitate general formatting and parsing of instances.

Perhaps the most useful application of these interfaces are on the processing of message results


Parsing an Interaction

IGraphable instance = formatter.ParseObject(File.OpenRead(@"C:\temp.xml"));

// We can get the identifier 
if(instance is IIdentifiable)
    Console.WriteLine((instance as IIdentifiable).Id);

// Or we can use the IInteraction interface to get interaction details
IInteraction interaction = instance as IInteraction;
if(interaction != null)