internal QueueEntry[] GetMyEntries(string name) { VisitorQueue dsQueue = new VisitorQueue(); VisitorQueueTableAdapter ad1 = new VisitorQueueTableAdapter(); ad1.Fill(dsQueue.Queue, name); List <QueueEntry> entries = new List <QueueEntry>(); foreach (VisitorQueue.QueueRow row in dsQueue.Queue) { entries.Add(CreateQueueEntry(row)); } return(entries.ToArray()); }
/// <summary> /// Retrieves all of the constraints associated with a generic type. /// </summary> public static LinkList <Constraint> GetConstraints(Type argument, out Assembly[] referencedAssemblies) { Debug.Assert(argument != null); Debug.Assert(argument.IsGenericParameter); var constraints = new List <Constraint>( ); var references = new HashSet <Assembly>( ); // Add derivation constraints (i.e. "T : Class, Interface, Generic<T>, ..."). foreach (Type baseType in argument.GetGenericParameterConstraints( )) { var baseTypeConstraint = Constraint.GetInheritanceConstraint(baseType, false); constraints.Add(baseTypeConstraint); references.Add(baseType.Assembly); } // Add argument usage constraints (i.e. "U : IEnumerable<T>"; "Method<T>( Argument<T> arg )"; etc) // if there are no derivation constraints. if (constraints.Count == 0) { var initialPotentials = argument.DeclaringMethod != null ? argument.DeclaringMethod .GetParameters( ) .Select((p) => p.ParameterType) .Concat(argument.DeclaringMethod.GetGenericArguments( )) : argument.DeclaringType.GetGenericArguments( ); var potentialUsageTypes = new VisitorQueue <Type>(initialPotentials); foreach (Type usageType in potentialUsageTypes) { Type[] usageTypeArguments = usageType.GetGenericArguments( ); potentialUsageTypes.AddRange(usageTypeArguments); if (usageTypeArguments.Contains(argument)) { constraints.Add(Constraint.GetInheritanceConstraint(usageType, true)); references.Add(usageType.Assembly); } } } // Add keyword constraints (i.e. "T : class, struct, new( )"). var attributes = argument.GenericParameterAttributes; if ((attributes & GenericParameterAttributes.ReferenceTypeConstraint) != 0) { constraints.Add(ReferenceTypeConstraint); } if ((attributes & GenericParameterAttributes.NotNullableValueTypeConstraint) != 0) { constraints.Add(NonNullableValueTypeConstraint); } if ((attributes & GenericParameterAttributes.DefaultConstructorConstraint) != 0) { constraints.Add(DefaultConstructorConstraint); } referencedAssemblies = new Assembly[references.Count]; references.CopyTo(referencedAssemblies); return(constraints.ToLinkList( )); }