Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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;
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CheckBoxFlatAdapter.cs
- SpecialNameAttribute.cs
- LogLogRecord.cs
- wmiprovider.cs
- ToolStripPanelSelectionBehavior.cs
- HostedImpersonationContext.cs
- HtmlInputImage.cs
- SerializationSectionGroup.cs
- HTMLTagNameToTypeMapper.cs
- HttpModuleAction.cs
- PathHelper.cs
- cache.cs
- HttpHeaderCollection.cs
- ArithmeticException.cs
- WorkflowDefinitionDispenser.cs
- SecurityUtils.cs
- CoreChannel.cs
- _HeaderInfo.cs
- TextBlock.cs
- ValueOfAction.cs
- TypeReference.cs
- DeleteIndexBinder.cs
- HttpConfigurationSystem.cs
- CombinedGeometry.cs
- _ConnectOverlappedAsyncResult.cs
- BitmapMetadataEnumerator.cs
- CollectionEditVerbManager.cs
- SectionVisual.cs
- MetadataWorkspace.cs
- FixedPage.cs
- ProcessHostConfigUtils.cs
- XPathMessageFilterTable.cs
- UndirectedGraph.cs
- Int64Animation.cs
- printdlgexmarshaler.cs
- PaintValueEventArgs.cs
- DataObjectSettingDataEventArgs.cs
- DispatcherOperation.cs
- MenuItemStyle.cs
- SqlFunctions.cs
- EnumerableCollectionView.cs
- TiffBitmapDecoder.cs
- HttpCapabilitiesEvaluator.cs
- _AutoWebProxyScriptEngine.cs
- TextEditorParagraphs.cs
- ToolboxService.cs
- Oci.cs
- querybuilder.cs
- FunctionUpdateCommand.cs
- FrameworkElement.cs
- OleDbConnectionInternal.cs
- WaitHandle.cs
- ToolStripScrollButton.cs
- mongolianshape.cs
- WizardForm.cs
- XmlSigningNodeWriter.cs
- ErrorRuntimeConfig.cs
- HashMembershipCondition.cs
- TileBrush.cs
- ExceptionHelpers.cs
- XmlSchemaComplexContentExtension.cs
- PropertyOverridesDialog.cs
- oledbconnectionstring.cs
- AppSettingsExpressionBuilder.cs
- FtpWebResponse.cs
- ListenerAdaptersInstallComponent.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- SqlDependency.cs
- ICspAsymmetricAlgorithm.cs
- DesignerValidationSummaryAdapter.cs
- ClientFormsIdentity.cs
- ApplicationContext.cs
- ClrPerspective.cs
- LeafCellTreeNode.cs
- SafeNativeMethods.cs
- AutoGeneratedField.cs
- WebColorConverter.cs
- SQLInt64.cs
- FixedTextBuilder.cs
- InternalDuplexBindingElement.cs
- ClientRoleProvider.cs
- ModelUIElement3D.cs
- NavigationHelper.cs
- Models.cs
- AssemblyCache.cs
- Pts.cs
- InternalTypeHelper.cs
- ParameterCollection.cs
- DateTimeFormatInfo.cs
- ClientFormsAuthenticationMembershipProvider.cs
- DataTableReader.cs
- RouteData.cs
- SchemaImporterExtensionsSection.cs
- FilteredAttributeCollection.cs
- CultureSpecificStringDictionary.cs
- WebPartMenu.cs
- CodeParameterDeclarationExpressionCollection.cs
- RenamedEventArgs.cs
- UriTemplateVariablePathSegment.cs
- LinqDataSourceDeleteEventArgs.cs