Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Reflection / Emit / ParameterBuilder.cs / 1305376 / 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; using System.Diagnostics.Contracts; [ClassInterface(ClassInterfaceType.None)] [ComDefaultInterface(typeof(_ParameterBuilder))] [System.Runtime.InteropServices.ComVisible(true)] public class ParameterBuilder : _ParameterBuilder { // set ParamMarshal [System.Security.SecuritySafeCritical] // auto-generated [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"); } Contract.EndContractBlock(); byte [] ubMarshal = unmanagedMarshal.InternalGetBytes(); TypeBuilder.SetFieldMarshal( m_methodBuilder.GetModuleBuilder().GetNativeHandle(), m_pdToken.Token, ubMarshal, ubMarshal.Length); } // Set the default value of the parameter [System.Security.SecuritySafeCritical] // auto-generated public virtual void SetConstant(Object defaultValue) { TypeBuilder.SetConstantValue( m_methodBuilder.GetModuleBuilder(), m_pdToken.Token, m_iPosition == 0 ? m_methodBuilder.ReturnType : m_methodBuilder.m_parameterTypes[m_iPosition - 1], defaultValue); } // Use this function if client decides to form the custom attribute blob themselves [System.Security.SecuritySafeCritical] // auto-generated [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"); Contract.EndContractBlock(); TypeBuilder.DefineCustomAttribute( m_methodBuilder.GetModuleBuilder(), m_pdToken.Token, ((ModuleBuilder )m_methodBuilder.GetModule()).GetConstructorToken(con).Token, binaryAttribute, false, false); } // Use this function if client wishes to build CustomAttribute using CustomAttributeBuilder [System.Security.SecuritySafeCritical] // auto-generated public void SetCustomAttribute(CustomAttributeBuilder customBuilder) { if (customBuilder == null) { throw new ArgumentNullException("customBuilder"); } Contract.EndContractBlock(); customBuilder.CreateCustomAttribute((ModuleBuilder) (m_methodBuilder .GetModule()), m_pdToken.Token); } //******************************* // Make a private constructor so these cannot be constructed externally. //******************************* private ParameterBuilder() {} [System.Security.SecurityCritical] // auto-generated 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.SetParamInfo( m_methodBuilder.GetModuleBuilder().GetNativeHandle(), 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 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
- SecurityTokenProvider.cs
- LowerCaseStringConverter.cs
- IDQuery.cs
- SHA384Cng.cs
- StringFreezingAttribute.cs
- LogReservationCollection.cs
- EntityClientCacheEntry.cs
- SqlDataSourceWizardForm.cs
- TypeConverter.cs
- CustomCredentialPolicy.cs
- COAUTHINFO.cs
- Double.cs
- IndexedEnumerable.cs
- COSERVERINFO.cs
- _FtpControlStream.cs
- DataGridCellItemAutomationPeer.cs
- ToolBarPanel.cs
- MailAddress.cs
- XmlTypeMapping.cs
- CacheVirtualItemsEvent.cs
- Lease.cs
- SortQuery.cs
- OleDbTransaction.cs
- PageClientProxyGenerator.cs
- CellIdBoolean.cs
- _DynamicWinsockMethods.cs
- OledbConnectionStringbuilder.cs
- InvalidOperationException.cs
- CheckBoxField.cs
- EdmSchemaError.cs
- CachedRequestParams.cs
- SafeNativeMethods.cs
- Effect.cs
- _SslSessionsCache.cs
- PersonalizationDictionary.cs
- Currency.cs
- DbDeleteCommandTree.cs
- DataGridViewHeaderCell.cs
- NullableLongSumAggregationOperator.cs
- MethodBuilderInstantiation.cs
- InitiatorSessionSymmetricTransportSecurityProtocol.cs
- CodeDomExtensionMethods.cs
- FastPropertyAccessor.cs
- D3DImage.cs
- TakeOrSkipWhileQueryOperator.cs
- SmiGettersStream.cs
- PathFigure.cs
- DrawingContextDrawingContextWalker.cs
- DBSchemaRow.cs
- VisualStateChangedEventArgs.cs
- WebPartVerbsEventArgs.cs
- _UriSyntax.cs
- TransactionManager.cs
- HttpConfigurationSystem.cs
- ServiceDescription.cs
- SafeSecurityHandles.cs
- ActivityXamlServices.cs
- Frame.cs
- ActiveDocumentEvent.cs
- WebConvert.cs
- ProxyManager.cs
- DashStyle.cs
- MultipartIdentifier.cs
- Operator.cs
- Wildcard.cs
- AccessText.cs
- MetadataWorkspace.cs
- _KerberosClient.cs
- HostingEnvironment.cs
- TreeIterators.cs
- HttpModulesSection.cs
- FastEncoderWindow.cs
- CFStream.cs
- MobileUserControl.cs
- PermissionListSet.cs
- DurableInstance.cs
- TimeSpanStorage.cs
- TraceRecords.cs
- SafeArrayRankMismatchException.cs
- TargetFrameworkAttribute.cs
- DesignTimeVisibleAttribute.cs
- IdnElement.cs
- SchemaNotation.cs
- EdmToObjectNamespaceMap.cs
- SerializationTrace.cs
- FileStream.cs
- WmiEventSink.cs
- xmlfixedPageInfo.cs
- SmtpDateTime.cs
- WebBrowser.cs
- ColorConvertedBitmap.cs
- ClientProxyGenerator.cs
- WS2007HttpBindingCollectionElement.cs
- Mappings.cs
- ConnectionManager.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- PersonalizationStateInfo.cs
- ExtensionCollection.cs
- VirtualDirectoryMapping.cs
- OdbcParameter.cs