Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / clr / src / BCL / System / Reflection / Emit / ParameterBuilder.cs / 1 / ParameterBuilder.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: ParameterBuilder ** ** ** ParameterBuilder is used to create/associate parameter information ** ** ===========================================================*/ namespace System.Reflection.Emit { using System.Runtime.InteropServices; using System; using System.Reflection; using System.Security.Permissions; [ClassInterface(ClassInterfaceType.None)] [ComDefaultInterface(typeof(_ParameterBuilder))] [System.Runtime.InteropServices.ComVisible(true)] public class ParameterBuilder : _ParameterBuilder { // set ParamMarshal [Obsolete("An alternate API is available: Emit the MarshalAs custom attribute instead. http://go.microsoft.com/fwlink/?linkid=14202")] public virtual void SetMarshal(UnmanagedMarshal unmanagedMarshal) { if (unmanagedMarshal == null) { throw new ArgumentNullException("unmanagedMarshal"); } byte [] ubMarshal = unmanagedMarshal.InternalGetBytes(); TypeBuilder.InternalSetMarshalInfo( m_methodBuilder.GetModule(), m_pdToken.Token, ubMarshal, ubMarshal.Length); } // Set the default value of the parameter public virtual void SetConstant(Object defaultValue) { TypeBuilder.SetConstantValue( m_methodBuilder.GetModule(), m_pdToken.Token, m_iPosition == 0 ? m_methodBuilder.m_returnType : m_methodBuilder.m_parameterTypes[m_iPosition-1], defaultValue); } // Use this function if client decides to form the custom attribute blob themselves [System.Runtime.InteropServices.ComVisible(true)] public void SetCustomAttribute(ConstructorInfo con, byte[] binaryAttribute) { if (con == null) throw new ArgumentNullException("con"); if (binaryAttribute == null) throw new ArgumentNullException("binaryAttribute"); TypeBuilder.InternalCreateCustomAttribute( m_pdToken.Token, ((ModuleBuilder )m_methodBuilder.GetModule()).GetConstructorToken(con).Token, binaryAttribute, m_methodBuilder.GetModule(), false); } // Use this function if client wishes to build CustomAttribute using CustomAttributeBuilder public void SetCustomAttribute(CustomAttributeBuilder customBuilder) { if (customBuilder == null) { throw new ArgumentNullException("customBuilder"); } customBuilder.CreateCustomAttribute((ModuleBuilder) (m_methodBuilder .GetModule()), m_pdToken.Token); } //******************************* // Make a private constructor so these cannot be constructed externally. //******************************* private ParameterBuilder() {} internal ParameterBuilder( MethodBuilder methodBuilder, int sequence, ParameterAttributes attributes, String strParamName) // can be NULL string { m_iPosition = sequence; m_strParamName = strParamName; m_methodBuilder = methodBuilder; m_strParamName = strParamName; m_attributes = attributes; m_pdToken = new ParameterToken( TypeBuilder.InternalSetParamInfo( m_methodBuilder.GetModule(), m_methodBuilder.GetToken().Token, sequence, attributes, strParamName)); } public virtual ParameterToken GetToken() { return m_pdToken; } void _ParameterBuilder.GetTypeInfoCount(out uint pcTInfo) { throw new NotImplementedException(); } void _ParameterBuilder.GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo) { throw new NotImplementedException(); } void _ParameterBuilder.GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId) { throw new NotImplementedException(); } void _ParameterBuilder.Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr) { throw new NotImplementedException(); } internal virtual int MetadataTokenInternal { get { return m_pdToken.Token; } } public virtual String Name { get {return m_strParamName;} } public virtual int Position { get {return m_iPosition;} } // < public virtual int Attributes { get {return (int) m_attributes;} } public bool IsIn { get {return ((m_attributes & ParameterAttributes.In) != 0);} } public bool IsOut { get {return ((m_attributes & ParameterAttributes.Out) != 0);} } public bool IsOptional { get {return ((m_attributes & ParameterAttributes.Optional) != 0);} } private String m_strParamName; private int m_iPosition; private ParameterAttributes m_attributes; private MethodBuilder m_methodBuilder; private ParameterToken m_pdToken; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: ParameterBuilder ** ** ** ParameterBuilder is used to create/associate parameter information ** ** ===========================================================*/ namespace System.Reflection.Emit { using System.Runtime.InteropServices; using System; using System.Reflection; using System.Security.Permissions; [ClassInterface(ClassInterfaceType.None)] [ComDefaultInterface(typeof(_ParameterBuilder))] [System.Runtime.InteropServices.ComVisible(true)] public class ParameterBuilder : _ParameterBuilder { // set ParamMarshal [Obsolete("An alternate API is available: Emit the MarshalAs custom attribute instead. http://go.microsoft.com/fwlink/?linkid=14202")] public virtual void SetMarshal(UnmanagedMarshal unmanagedMarshal) { if (unmanagedMarshal == null) { throw new ArgumentNullException("unmanagedMarshal"); } byte [] ubMarshal = unmanagedMarshal.InternalGetBytes(); TypeBuilder.InternalSetMarshalInfo( m_methodBuilder.GetModule(), m_pdToken.Token, ubMarshal, ubMarshal.Length); } // Set the default value of the parameter public virtual void SetConstant(Object defaultValue) { TypeBuilder.SetConstantValue( m_methodBuilder.GetModule(), m_pdToken.Token, m_iPosition == 0 ? m_methodBuilder.m_returnType : m_methodBuilder.m_parameterTypes[m_iPosition-1], defaultValue); } // Use this function if client decides to form the custom attribute blob themselves [System.Runtime.InteropServices.ComVisible(true)] public void SetCustomAttribute(ConstructorInfo con, byte[] binaryAttribute) { if (con == null) throw new ArgumentNullException("con"); if (binaryAttribute == null) throw new ArgumentNullException("binaryAttribute"); TypeBuilder.InternalCreateCustomAttribute( m_pdToken.Token, ((ModuleBuilder )m_methodBuilder.GetModule()).GetConstructorToken(con).Token, binaryAttribute, m_methodBuilder.GetModule(), false); } // Use this function if client wishes to build CustomAttribute using CustomAttributeBuilder public void SetCustomAttribute(CustomAttributeBuilder customBuilder) { if (customBuilder == null) { throw new ArgumentNullException("customBuilder"); } customBuilder.CreateCustomAttribute((ModuleBuilder) (m_methodBuilder .GetModule()), m_pdToken.Token); } //******************************* // Make a private constructor so these cannot be constructed externally. //******************************* private ParameterBuilder() {} internal ParameterBuilder( MethodBuilder methodBuilder, int sequence, ParameterAttributes attributes, String strParamName) // can be NULL string { m_iPosition = sequence; m_strParamName = strParamName; m_methodBuilder = methodBuilder; m_strParamName = strParamName; m_attributes = attributes; m_pdToken = new ParameterToken( TypeBuilder.InternalSetParamInfo( m_methodBuilder.GetModule(), m_methodBuilder.GetToken().Token, sequence, attributes, strParamName)); } public virtual ParameterToken GetToken() { return m_pdToken; } void _ParameterBuilder.GetTypeInfoCount(out uint pcTInfo) { throw new NotImplementedException(); } void _ParameterBuilder.GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo) { throw new NotImplementedException(); } void _ParameterBuilder.GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId) { throw new NotImplementedException(); } void _ParameterBuilder.Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr) { throw new NotImplementedException(); } internal virtual int MetadataTokenInternal { get { return m_pdToken.Token; } } public virtual String Name { get {return m_strParamName;} } public virtual int Position { get {return m_iPosition;} } // < public virtual int Attributes { get {return (int) m_attributes;} } public bool IsIn { get {return ((m_attributes & ParameterAttributes.In) != 0);} } public bool IsOut { get {return ((m_attributes & ParameterAttributes.Out) != 0);} } public bool IsOptional { get {return ((m_attributes & ParameterAttributes.Optional) != 0);} } private String m_strParamName; private int m_iPosition; private ParameterAttributes m_attributes; private MethodBuilder m_methodBuilder; private ParameterToken m_pdToken; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ReflectEventDescriptor.cs
- ElementProxy.cs
- Tool.cs
- OleTxTransaction.cs
- CompiledELinqQueryState.cs
- CorruptingExceptionCommon.cs
- DataTemplateKey.cs
- altserialization.cs
- XXXOnTypeBuilderInstantiation.cs
- MessagePropertyFilter.cs
- XmlDictionary.cs
- ReadOnlyHierarchicalDataSourceView.cs
- PersonalizationStateInfoCollection.cs
- DefaultPropertyAttribute.cs
- DPTypeDescriptorContext.cs
- ImportCatalogPart.cs
- Size3DValueSerializer.cs
- Compiler.cs
- ContainerVisual.cs
- StreamSecurityUpgradeInitiator.cs
- GridPatternIdentifiers.cs
- IncrementalCompileAnalyzer.cs
- WebDisplayNameAttribute.cs
- SR.cs
- Evidence.cs
- WebPartsPersonalization.cs
- TypeSystem.cs
- PenLineCapValidation.cs
- ClientRuntimeConfig.cs
- ResourceExpressionBuilder.cs
- SoapObjectReader.cs
- WSDualHttpSecurityMode.cs
- COM2PropertyBuilderUITypeEditor.cs
- VisualProxy.cs
- XpsPackagingException.cs
- DateTime.cs
- JsonStringDataContract.cs
- SqlParameter.cs
- ImageSource.cs
- QueryPrefixOp.cs
- RemotingException.cs
- Transform3DGroup.cs
- ErrorFormatter.cs
- XmlSchemaSimpleType.cs
- WebServiceParameterData.cs
- DataBindingExpressionBuilder.cs
- FrameworkTextComposition.cs
- ConfigurationLocationCollection.cs
- ParsedRoute.cs
- WpfMemberInvoker.cs
- SafeCryptoHandles.cs
- WriteableBitmap.cs
- StructuredType.cs
- SequentialUshortCollection.cs
- UnaryExpression.cs
- PolyBezierSegment.cs
- WebPartRestoreVerb.cs
- XmlWrappingWriter.cs
- QilLoop.cs
- Rect.cs
- MimeBasePart.cs
- ViewManager.cs
- QueueProcessor.cs
- ListViewGroupItemCollection.cs
- DynamicPropertyReader.cs
- LostFocusEventManager.cs
- SecurityHeaderElementInferenceEngine.cs
- SqlBuilder.cs
- ShaderEffect.cs
- DataViewSetting.cs
- CatalogPart.cs
- SqlMethodTransformer.cs
- OneOfTypeConst.cs
- SafeNativeMethods.cs
- SubMenuStyle.cs
- Validator.cs
- UMPAttributes.cs
- InstancePersistenceException.cs
- ActiveXSite.cs
- BulletedList.cs
- SmiMetaDataProperty.cs
- MessageContractExporter.cs
- DesignTimeType.cs
- Reference.cs
- ScriptReference.cs
- DiscoveryClientBindingElement.cs
- Configuration.cs
- KeyEventArgs.cs
- EntityWrapper.cs
- XPathQilFactory.cs
- InternalTypeHelper.cs
- QueryMath.cs
- CachedBitmap.cs
- HttpChannelFactory.cs
- ObjectSecurity.cs
- PolicyManager.cs
- DataGridViewControlCollection.cs
- DataGridHeaderBorder.cs
- __TransparentProxy.cs
- SolidBrush.cs