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
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FilterableAttribute.cs
- RawUIStateInputReport.cs
- PolicyManager.cs
- AuthenticationConfig.cs
- AppDomainAttributes.cs
- MobileUserControl.cs
- QueryOutputWriter.cs
- AsymmetricAlgorithm.cs
- SafeEventLogReadHandle.cs
- ForeignKeyConstraint.cs
- ClientApiGenerator.cs
- SchemaManager.cs
- RtfControlWordInfo.cs
- BaseCodeDomTreeGenerator.cs
- SortKey.cs
- EntityUtil.cs
- ToolStripGripRenderEventArgs.cs
- ListArgumentProvider.cs
- AttachedPropertyDescriptor.cs
- ProviderConnectionPoint.cs
- SafeWaitHandle.cs
- PrintDialogDesigner.cs
- ResourceWriter.cs
- TimelineClockCollection.cs
- XmlCharCheckingWriter.cs
- ExpressionPrinter.cs
- Debug.cs
- StreamBodyWriter.cs
- DoWhile.cs
- FunctionNode.cs
- MetadataWorkspace.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- XmlUnspecifiedAttribute.cs
- DbgUtil.cs
- _NestedSingleAsyncResult.cs
- BamlResourceSerializer.cs
- DataColumnMapping.cs
- SpAudioStreamWrapper.cs
- SynchronizationLockException.cs
- XamlGridLengthSerializer.cs
- HttpCacheParams.cs
- BasicKeyConstraint.cs
- ObjectManager.cs
- WebConfigurationManager.cs
- TimelineClockCollection.cs
- PrivilegeNotHeldException.cs
- TickBar.cs
- NamespaceQuery.cs
- DataControlPagerLinkButton.cs
- HwndKeyboardInputProvider.cs
- IntPtr.cs
- Rect.cs
- XPathParser.cs
- Pkcs7Signer.cs
- DecoderReplacementFallback.cs
- ScriptDescriptor.cs
- XmlDataSource.cs
- OracleConnectionString.cs
- RoutedUICommand.cs
- CommonGetThemePartSize.cs
- XmlAutoDetectWriter.cs
- ApplicationException.cs
- TimeSpan.cs
- SimpleWebHandlerParser.cs
- LinqDataSourceStatusEventArgs.cs
- SegmentInfo.cs
- IConvertible.cs
- configsystem.cs
- SqlCacheDependencySection.cs
- DataControlFieldCell.cs
- RTLAwareMessageBox.cs
- SelectionItemPattern.cs
- DataRow.cs
- NonParentingControl.cs
- MatrixTransform.cs
- SmtpFailedRecipientException.cs
- WebBrowserNavigatedEventHandler.cs
- EventHandlerList.cs
- SR.cs
- ElementsClipboardData.cs
- QueryExecutionOption.cs
- Point4DValueSerializer.cs
- RowSpanVector.cs
- CallbackException.cs
- Tuple.cs
- PropertySegmentSerializer.cs
- Symbol.cs
- ConnectionInterfaceCollection.cs
- RelatedCurrencyManager.cs
- ArrangedElementCollection.cs
- ResourceCategoryAttribute.cs
- XpsDigitalSignature.cs
- WebCategoryAttribute.cs
- DataTemplate.cs
- ThreadLocal.cs
- DefaultProfileManager.cs
- IERequestCache.cs
- CodeBinaryOperatorExpression.cs
- RepeatBehavior.cs
- HeaderElement.cs