anchor.diff:      procedure Clear;
   
       property RaiseIfNotFound : boolean read FRaiseIfNotFound write FRaiseIfNotFound;
  -
  -
  -
     end;
   
     EIoCException = class(Exception);
  
positive.code: 
    //Makes sure virtual constructors are called correctly. Just using a class reference will not call the overriden constructor!
    //See http://stackoverflow.com/questions/791069/how-can-i-create-an-delphi-object-from-a-class-reference-and-ensure-constructor
    TClassActivator = class
    private
      class var
  
negative.code: end;
  
  {$IFDEF DELPHI_XE_UP}
  procedure TDUnitXIoC.RegisterType<TInterface, TImplementation>(const name: string);
  begin
    InternalRegisterType<TInterface>(false, TClassActivator.CreateActivatorDelegate<TInterface>(TImplementation), name);
  end;
  
  procedure TDUnitXIoC.RegisterType<TInterface, TImplementation>(const singleton: boolean; const name: string);
  begin
    InternalRegisterType<TInterface>(singleton, TClassActivator.CreateActivatorDelegate<TInterface>(TImplementation), name);
  end;
  {$ENDIF}
  
  procedure TDUnitXIoC.InternalRegisterType<TInterface>(const singleton : boolean; const delegate : TActivatorDelegate<TInterface>; const name : string = '');
  var
    key   : string;
    pInfo : PTypeInfo;
  