/// <summary> /// Starts the state class extraction from the given role class. /// </summary> /// <param name="sourceType">The role class to extract the state class from.</param> public override void Visit(TypeDefinition sourceType) { Tracer.TraceVerbose("Extract state class: {0} => {1}", sourceType.ToString(), TargetTypeName); TargetType = new TypeDefinition( string.Empty, TargetTypeName, TypeAttributes.NestedPublic | TypeAttributes.Sealed | TypeAttributes.AnsiClass | TypeAttributes.BeforeFieldInit, sourceType.Module.Import(typeof(object)) ); TargetType.CopyGenericParametersFrom(sourceType); AddStateProperty(); CreateDefaultConstructor(); }