public IAssemblyTransformation CreateTransformation ()
    {
      if (_remotionInterfaces == null)
        throw new InvalidOperationException ("Please initialize options first! (ConstructorGenerator) : Remotion interfaces must be specified");
      if (_workingDir == null)
        throw new InvalidOperationException ("Please initialize options first! (ConstructorGenerator) : Working directory must be specified");

#if PERFORMANCE_OUTPUT
      Stopwatch s = new Stopwatch ();
      s.Start ();
#endif
      try
      {
        var checker = new StringAndReflectionBasedMixinChecker (_workingDir, _remotionInterfaces);

        return new ConstructorGenerator (
            checker,
            new ILCodeGenerator (
                new MethodReferenceGenerator (_remotionInterfaces, _objectFactory, _paramList),
                checker)
          );
      }
      finally 
      {
#if PERFORMANCE_OUTPUT
        s.Stop ();
        Console.WriteLine ("time for mixinconfiguration initialization : " + s.Elapsed);
        s.Restart ();
#endif
      }

    }
        public void MixinChecker_Exception()
        {
            _checker = new StringAndReflectionBasedMixinChecker ("workingDirectory", "assemblyNameRemotionInterfaces");

              var result = _checker.CanBeMixed (_assemblyDefinition.Name.BuildAssemblyQualifiedName(_assemblyDefinition.MainModule.Types[0]));

              Assert.That (result, Is.False);
        }