ParameterInfo.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Compiler / TypeSystem / ParameterInfo.cs / 1305376 / ParameterInfo.cs

                            namespace System.Workflow.ComponentModel.Compiler 
{
    using System;
    using System.CodeDom;
    using System.Collections; 
    using System.Collections.Specialized;
    using System.ComponentModel; 
    using System.ComponentModel.Design; 
    using System.Diagnostics;
    using System.Globalization; 
    using System.Reflection;

    #region DesignTimeParameterInfo
 	internal sealed class DesignTimeParameterInfo: ParameterInfo 
	{
		#region Members and Constructors 
		private CodeTypeReference codeParameterType; 
 		private bool isRef = false;
		internal DesignTimeParameterInfo(CodeParameterDeclarationExpression codeParameter, int position, MemberInfo member) 
 		{
 			this.MemberImpl = member;
			this.NameImpl = Helper.EnsureTypeName(codeParameter.Name);
 			this.codeParameterType = codeParameter.Type; 
			this.AttrsImpl = Helper.ConvertToParameterAttributes(codeParameter.Direction);
			this.isRef = (codeParameter.Direction == FieldDirection.Ref); 
			this.PositionImpl = position; 
 		}
 
		// return param ctor
 		internal DesignTimeParameterInfo(CodeTypeReference codeParameterType, MemberInfo member)
 		{
			this.MemberImpl = member; 
 			this.NameImpl = null;
			this.codeParameterType = codeParameterType; 
			this.AttrsImpl = ParameterAttributes.None; 
			this.PositionImpl = -1;
 		} 
		

 		#endregion
 
 		#region Pararmeter Info overrides
 
		public override Type ParameterType 
 		{
			get 
			{
                string type = DesignTimeType.GetTypeNameFromCodeTypeReference(this.codeParameterType, (this.Member.DeclaringType as DesignTimeType));
				if ((this.AttrsImpl & ParameterAttributes.Out) > 0 || this.isRef)
 					type += '&'; // Append with & for (ref & out) parameter types 
				this.ClassImpl = (this.Member.DeclaringType as DesignTimeType).ResolveType(type);
 				return base.ParameterType; 
 			} 
		}
 		#endregion 
	}
	#endregion
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK