/// <summary> /// Get the internal representation of member types /// </summary> /// <exception cref="ArgumentOutOfRangeException"></exception> public static MemberTypes GetMemberTypes(this AccessorTypes accessorTypes) { MemberTypes memberTypes; switch (accessorTypes) { case AccessorTypes.None: memberTypes = 0; break; case AccessorTypes.Property: memberTypes = MemberTypes.Property; break; case AccessorTypes.Field: memberTypes = MemberTypes.Field; break; case AccessorTypes.Any: memberTypes = MemberTypes.Property | MemberTypes.Field; break; default: throw new ArgumentOutOfRangeException(nameof(accessorTypes), accessorTypes, null); } return(memberTypes); }
/// <summary> /// Create a snapshot /// </summary> public static ISnapshot CreateSnapshot(object target, AccessorTypes includedAccessors = AccessorTypes.Property) { var dynamicType = target.GetType().CreateDynamicType(); IEnumerable <DynamicAccessor> accessors; switch (includedAccessors) { case AccessorTypes.None: accessors = Enumerable.Empty <DynamicAccessor>(); break; case AccessorTypes.Property: accessors = dynamicType.Properties; break; case AccessorTypes.Field: accessors = dynamicType.Fields; break; case AccessorTypes.Any: accessors = dynamicType.Accessors; break; default: throw new ArgumentOutOfRangeException(nameof(includedAccessors), includedAccessors, null); } return(CreateSnapshot(target, accessors.AsArray())); }
public AbstractPropertyWithCodeAnalysis( ClassMemberVisibilityModifier visibility, ITypeReferenceWithCodeAnalysis type, string name, AccessorTypes accessors) : this() { List <AccessorDeclarationSyntax> accessorSyntax = new List <AccessorDeclarationSyntax>(); if (accessors.HasFlag(AccessorTypes.Get)) { accessorSyntax.Add(SyntaxFactory.AccessorDeclaration(SyntaxKind.GetKeyword)); } if (accessors.HasFlag(AccessorTypes.Set)) { accessorSyntax.Add(SyntaxFactory.AccessorDeclaration(SyntaxKind.SetKeyword)); } Syntax = SyntaxFactory.PropertyDeclaration( default(SyntaxList <AttributeListSyntax>), default(SyntaxTokenList).WithClassMemberVisibilityModifier(visibility).Add(SyntaxKind.AbstractKeyword), type.Syntax, null, SyntaxFactory.Identifier(name), SyntaxFactory.AccessorList(SyntaxFactory.List(accessorSyntax))); }
private InterfaceAccessor(InterfaceAccessor propToCopyFrom) : base(null) { propToCopyFrom.CloneInto(this); AccessorType = propToCopyFrom.AccessorType; Modifiers = new List <string>(propToCopyFrom.Modifiers); }
public AbstractIndexerWithCodeAnalysis( ClassMemberVisibilityModifier visibility, ITypeReferenceWithCodeAnalysis type, IEnumerable <IndexerParameterWithCodeAnalysis> parameters, AccessorTypes accessors) : this() { var parameterSyntax = parameters.Select(parameter => parameter.Syntax); List <AccessorDeclarationSyntax> accessorSyntax = new List <AccessorDeclarationSyntax>(); if (accessors.HasFlag(AccessorTypes.Get)) { accessorSyntax.Add(SyntaxFactory.AccessorDeclaration(SyntaxKind.GetKeyword)); } if (accessors.HasFlag(AccessorTypes.Set)) { accessorSyntax.Add(SyntaxFactory.AccessorDeclaration(SyntaxKind.SetKeyword)); } Syntax = SyntaxFactory.IndexerDeclaration( default(SyntaxList <AttributeListSyntax>), default(SyntaxTokenList).WithClassMemberVisibilityModifier(visibility).Add(SyntaxKind.AbstractKeyword), type.Syntax, null, SyntaxFactory.BracketedParameterList(SyntaxFactory.SeparatedList(parameterSyntax)), SyntaxFactory.AccessorList(SyntaxFactory.List(accessorSyntax))); }
public InterfaceAccessor(Controller controller, BaseConstruct parentObject, AccessorTypes accessorType, CodeLanguage language) : base(controller) { ParentObject = parentObject; AccessorType = accessorType; Language = language; }
private PropertyAccessor(PropertyAccessor propToCopyFrom) : base(null) { propToCopyFrom.CloneInto(this); AccessorType = propToCopyFrom.AccessorType; Language = propToCopyFrom.Language; Modifier = propToCopyFrom.Modifier; }
public PropertyAccessor(Controller controller, BaseConstruct parentObject, AccessorTypes accessorType, string text, CodeLanguage language) : base(controller) { ParentObject = parentObject; AccessorType = accessorType; Text = text; Language = language; }
public AbstractPartialClassAbstractIndexerWithCodeAnalysis( ClassMemberVisibilityModifier visibility, ITypeReferenceWithCodeAnalysis type, IEnumerable <IndexerParameterWithCodeAnalysis> parameters, AccessorTypes accessors) : this(new AbstractIndexerWithCodeAnalysis(visibility, type, parameters, accessors)) { }
public AbstractPartialClassAbstractPropertyWithCodeAnalysis( ClassMemberVisibilityModifier visibility, ITypeReferenceWithCodeAnalysis type, string name, AccessorTypes accessors) : this(new AbstractPropertyWithCodeAnalysis(visibility, type, name, accessors)) { }
/// <summary> /// Creates a new instance of <see cref="DynamicAccessor"/> /// </summary> protected DynamicAccessor(MemberInfo memberInfo, DynamicSetter setter, DynamicGetter getter, Type valueType, AccessorTypes accessorType) : base(memberInfo) { ValueType = valueType ?? throw new ArgumentNullException(nameof(valueType)); AccessorType = accessorType; var accessMode = ValueAccessModes.None; if (getter != null) { Getter = getter; accessMode |= ValueAccessModes.Read; } if (setter != null) { Setter = setter; accessMode |= ValueAccessModes.Write; } ValueAccessMode = accessMode; }
public PropertyAccessor(Controller controller, AccessorTypes accessorType, string name) : base(controller) { AccessorType = accessorType; Name = name; }
public PropertyAccessor(Controller controller, AccessorTypes accessorType) : base(controller) { AccessorType = accessorType; }
public VBPropertyAccessor(VBController controller, VBBaseConstruct parentObject, AccessorTypes accessorType, string text, CodeLanguage language) : base(controller, parentObject, accessorType, text, language) { }
public VBPropertyAccessor(VBController controller, AccessorTypes accessorType) : base(controller, accessorType) { }
public VBInterfaceAccessor(VBController controller, VBBaseConstruct parentObject, AccessorTypes accessorType, CodeLanguage language) : base(controller, parentObject, accessorType, language) { }
public InterfaceAccessor(Controller controller, AccessorTypes accessorType, string modifier) : base(controller) { AccessorType = accessorType; _Modifiers.Add(modifier); }
public VBInterfaceAccessor(VBController controller, AccessorTypes accessorType, string modifier) : base(controller, accessorType, modifier) { }