コード例 #1
0
		/// <summary>
		/// Populates the <see cref="RunInvokerTree"/> invoker graph
		/// with <see cref="IRunInvoker"/> generated by the run.
		/// </summary>
		/// <param name="tree">Invoker tree</param>
		/// <param name="parent">parent vertex</param>
		/// <param name="t">class type that is marked by the run</param>
		/// <remarks>
		/// </remarks>
		public void Reflect(RunInvokerTree tree, RunInvokerVertex parent, Type t)
		{
			foreach(MethodInfo mi in 
				TypeHelper.GetAttributedMethods(t,typeof(IndexerProviderAttribute)))
			{
				// get attribute
				IndexerProviderAttribute attr = 
					(IndexerProviderAttribute)TypeHelper.GetFirstCustomAttribute(mi,typeof(IndexerProviderAttribute));
				
				// add indexer provider
				IRunInvoker invoker = 
					new ArgumentFeederRunInvoker(this,mi);
				RunInvokerVertex child = 
						tree.AddChild(parent,invoker);				
				
				// add tester
				CustomRun testerRun = new CustomRun(
					this.testerType,
					typeof(TestAttribute),
					true,
					attr
					);
				testerRun.Reflect(tree,child,t);
			}
		}
コード例 #2
0
        /// <summary>
        /// Populates the <see cref="RunInvokerTree"/> invoker graph
        /// with <see cref="IRunInvoker"/> generated by the run.
        /// </summary>
        /// <param name="tree">Invoker tree</param>
        /// <param name="parent">parent vertex</param>
        /// <param name="t">class type that is marked by the run</param>
        /// <remarks>
        /// </remarks>
        public void Reflect(RunInvokerTree tree, RunInvokerVertex parent, Type t)
        {
            foreach(MethodInfo mi in
                TypeHelper.GetAttributedMethods(t,typeof(IndexerProviderAttribute)))
            {
                // get attribute
                IndexerProviderAttribute attr =
                    (IndexerProviderAttribute)TypeHelper.GetFirstCustomAttribute(mi,typeof(IndexerProviderAttribute));

                // add indexer provider
                IRunInvoker invoker =
                    new ArgumentFeederRunInvoker(this,mi);
                RunInvokerVertex child =
                        tree.AddChild(parent,invoker);

                // add tester
                CustomRun testerRun = new CustomRun(
                    this.testerType,
                    typeof(TestAttribute),
                    true,
                    attr
                    );
                testerRun.Reflect(tree,child,t);
            }
        }