Exemplo n.º 1
0
        private static TypeDefinition CreateDefinition(StructureKind kind, ISpecimenContext context)
        {
            TypeDefinition definition;

            switch (kind)
            {
            case StructureKind.Class:
                definition = TypeDefinition.NewClass((ClassDefinition)context.Resolve(typeof(ClassDefinition)));
                break;

            case StructureKind.Struct:
                definition = TypeDefinition.NewStruct((ClassDefinition)context.Resolve(typeof(ClassDefinition)));
                break;

            case StructureKind.Interface:
                definition = TypeDefinition.NewInterface((ClassDefinition)context.Resolve(typeof(ClassDefinition)));
                break;

            case StructureKind.Enum:
                definition = TypeDefinition.NewEnum((EnumDefinition)context.Resolve(typeof(EnumDefinition)));
                break;

            case StructureKind.Delegate:
                definition = TypeDefinition.NewDelegate((DelegateDefinition)context.Resolve(typeof(DelegateDefinition)));
                break;

            default:
                definition = null;
                break;
            }

            return(definition);
        }
Exemplo n.º 2
0
 protected ContainerDefinitionDataAttribute(
     StructureKind kind         = StructureKind.Class,
     string name                = "Foo",
     string parent              = "",
     string nspace              = "",
     string[] modifiers         = null,
     string[] accessModifiers   = null,
     string[] baseTypes         = null,
     string[] generics          = null,
     bool hasComments           = false,
     int membersCount           = 0,
     string[] membersVisibility = null,
     string setVisibilty        = null,
     string getVisibility       = null,
     object[] values            = null)
     : base(new ISpecimenBuilder[]
 {
     new TypeDefinitionBuilder(kind),
     new TypeIdentityBuilder(name, parent, nspace, modifiers, accessModifiers, baseTypes, generics),
     new PropertiesBuilder(membersCount, membersVisibility, setVisibilty, getVisibility),
     new TypeFieldsBuilder(membersCount, membersVisibility),
     new TypeEventsBuilder(membersCount, membersVisibility),
     new TypeMethodsBuilder(membersCount, membersVisibility),
     new TypeCommentBuilder(hasComments)
 }, values ?? new object[0])
 {
 }
Exemplo n.º 3
0
 public ContainerDefinitionDataAttribute(string[] membersVisibility, int membersCount,
                                         StructureKind kind = StructureKind.Class, string setVisibilty = null, string getVisibility = null,
                                         object[] values    = null)
     : base(new []
 {
     new TypeDefinitionBuilder(kind),
     DefaultIdentityBuilder,
     new TypePropertiesBuilder(membersCount, membersVisibility, setVisibilty, getVisibility),
     new TypeFieldsBuilder(membersCount, membersVisibility),
     new TypeEventsBuilder(membersCount, membersVisibility),
     new TypeMethodsBuilder(membersCount, membersVisibility),
 }, values ?? new object[0])
 {
 }
Exemplo n.º 4
0
 private void StartStructured(StructureKind kind)
 {
     Write(kind == StructureKind.Array ? "[" : "{", TokenKind.Structure);
     _counters.Push(0);
     _structures.Push(kind);
 }
Exemplo n.º 5
0
 public ContainerDefinitionDataAttribute(string name, string parent, string nspace, StructureKind kind,
                                         string[] parameters, params object[] values)
     : base(new ISpecimenBuilder[]
 {
     new TypeIdentityBuilder(name, parent, nspace, parameters: parameters),
     new TypeDefinitionBuilder(kind)
 }, values)
 {
 }
Exemplo n.º 6
0
 public TypeDefinitionBuilder(StructureKind kind)
 {
     _kind = kind;
 }