Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Compiler / TypeSystem / EventInfo.cs / 1305376 / EventInfo.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 DesignTimeEventInfo internal sealed class DesignTimeEventInfo: EventInfo { #region Members and Constructors private string name; private DesignTimeMethodInfo addMethod = null; private DesignTimeMethodInfo removeMethod = null; private Attribute[] attributes = null; private MemberAttributes memberAttributes; private DesignTimeType declaringType; private CodeMemberEvent codeDomEvent; internal DesignTimeEventInfo(DesignTimeType declaringType, CodeMemberEvent codeDomEvent) { if (declaringType == null) { throw new ArgumentNullException("Declaring Type"); } if (codeDomEvent == null) { throw new ArgumentNullException("codeDomEvent"); } this.declaringType = declaringType; this.codeDomEvent = codeDomEvent; this.name = Helper.EnsureTypeName(codeDomEvent.Name); this.memberAttributes = codeDomEvent.Attributes; this.addMethod = null; this.removeMethod = null; } #endregion #region Event Info overrides public override MethodInfo GetAddMethod(bool nonPublic) { if (this.addMethod == null) { Type handlerType = declaringType.ResolveType(DesignTimeType.GetTypeNameFromCodeTypeReference(this.codeDomEvent.Type, declaringType)); if (handlerType != null) { CodeMemberMethod codeAddMethod = new CodeMemberMethod(); codeAddMethod.Name = "add_" + this.name; codeAddMethod.ReturnType = new CodeTypeReference(typeof(void)); codeAddMethod.Parameters.Add(new CodeParameterDeclarationExpression(this.codeDomEvent.Type, "Handler")); codeAddMethod.Attributes = this.memberAttributes; this.addMethod = new DesignTimeMethodInfo(this.declaringType, codeAddMethod, true); } } return this.addMethod; } public override MethodInfo GetRemoveMethod(bool nonPublic) { if (this.removeMethod == null) { Type handlerType = declaringType.ResolveType(DesignTimeType.GetTypeNameFromCodeTypeReference(this.codeDomEvent.Type, declaringType)); if (handlerType != null) { CodeMemberMethod codeRemoveMethod = new CodeMemberMethod(); codeRemoveMethod.Name = "remove_" + this.name; codeRemoveMethod.ReturnType = new CodeTypeReference(typeof(void)); codeRemoveMethod.Parameters.Add(new CodeParameterDeclarationExpression(handlerType, "Handler")); codeRemoveMethod.Attributes = this.memberAttributes; this.removeMethod = new DesignTimeMethodInfo(declaringType, codeRemoveMethod, true); } } return this.removeMethod; } public override MethodInfo GetRaiseMethod(bool nonPublic) { return null; } public override EventAttributes Attributes { //We're not interested in this flag get { return default(EventAttributes); } } #endregion #region MemberInfo Overrides public override string Name { get { return this.name; } } public override Type DeclaringType { get { return this.declaringType; } } public override Type ReflectedType { get { return this.declaringType; } } public override object[] GetCustomAttributes(bool inherit) { return GetCustomAttributes(typeof(object), inherit); } public override object[] GetCustomAttributes(Type attributeType, bool inherit) { if (attributeType == null) throw new ArgumentNullException("attributeType"); if (this.attributes == null) this.attributes = Helper.LoadCustomAttributes(this.codeDomEvent.CustomAttributes, this.DeclaringType as DesignTimeType); return Helper.GetCustomAttributes(attributeType, inherit, this.attributes, this); } public override bool IsDefined(Type attributeType, bool inherit) { if (attributeType == null) throw new ArgumentNullException("attributeType"); if (this.attributes == null) this.attributes = Helper.LoadCustomAttributes(this.codeDomEvent.CustomAttributes, this.DeclaringType as DesignTimeType); if (Helper.IsDefined(attributeType, inherit, attributes, this)) return true; return false; } #endregion #region Helpers internal bool IsPublic { get { return ((memberAttributes & MemberAttributes.Public) != 0); } } internal bool IsStatic { get { return ((memberAttributes & MemberAttributes.Static) != 0); } } #endregion } #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ClonableStack.cs
- ServiceDescription.cs
- CmsUtils.cs
- SqlXmlStorage.cs
- TrackingDataItemValue.cs
- XmlSchemaRedefine.cs
- ElementMarkupObject.cs
- MeasurementDCInfo.cs
- KeyEvent.cs
- Encoding.cs
- SchemaCollectionCompiler.cs
- ComponentCollection.cs
- FormViewUpdatedEventArgs.cs
- RenderOptions.cs
- SettingsProviderCollection.cs
- DataControlButton.cs
- JoinGraph.cs
- InputChannel.cs
- WebServiceClientProxyGenerator.cs
- Authorization.cs
- ConstraintManager.cs
- HttpPostedFileBase.cs
- Section.cs
- TextClipboardData.cs
- Part.cs
- GregorianCalendarHelper.cs
- CapabilitiesAssignment.cs
- CryptoApi.cs
- WebReferencesBuildProvider.cs
- FileSystemWatcher.cs
- URLIdentityPermission.cs
- CommentAction.cs
- SystemGatewayIPAddressInformation.cs
- SynchronousSendBindingElement.cs
- CompiledXpathExpr.cs
- ThrowHelper.cs
- TimeStampChecker.cs
- RuntimeConfigurationRecord.cs
- Utils.cs
- DefaultAssemblyResolver.cs
- TextView.cs
- ProfileGroupSettingsCollection.cs
- _TransmitFileOverlappedAsyncResult.cs
- SessionStateModule.cs
- ZipIOExtraFieldPaddingElement.cs
- ProbeDuplexCD1AsyncResult.cs
- Privilege.cs
- Internal.cs
- ParameterReplacerVisitor.cs
- TextContainerChangedEventArgs.cs
- BooleanToVisibilityConverter.cs
- LeftCellWrapper.cs
- ListItemsCollectionEditor.cs
- MonthChangedEventArgs.cs
- XPathNodeInfoAtom.cs
- PerformanceCounter.cs
- AuthStoreRoleProvider.cs
- TextFormatterContext.cs
- DbParameterHelper.cs
- DeleteBookmarkScope.cs
- TagMapCollection.cs
- SessionParameter.cs
- ConvertersCollection.cs
- GetLedgerRequest.cs
- PerformanceCounterPermissionEntry.cs
- DetailsViewRow.cs
- MSHTMLHost.cs
- DrawingImage.cs
- BindingObserver.cs
- TextSpanModifier.cs
- MetadataArtifactLoader.cs
- XmlTextReaderImplHelpers.cs
- ObjectPersistData.cs
- LiteralTextParser.cs
- SafeNativeMethodsOther.cs
- SQLChars.cs
- Point3DConverter.cs
- ApplicationId.cs
- DataSvcMapFileSerializer.cs
- ViewEvent.cs
- EdmEntityTypeAttribute.cs
- ExtendLockCommand.cs
- Object.cs
- PointF.cs
- MatrixAnimationUsingKeyFrames.cs
- ListBindingConverter.cs
- newinstructionaction.cs
- DiagnosticsElement.cs
- SqlTriggerAttribute.cs
- LazyTextWriterCreator.cs
- SelectedGridItemChangedEvent.cs
- Transactions.cs
- ConfigXmlDocument.cs
- FlowDocumentReaderAutomationPeer.cs
- XhtmlBasicLiteralTextAdapter.cs
- XmlSchemas.cs
- AssemblyCache.cs
- SqlBulkCopyColumnMapping.cs
- FontResourceCache.cs
- UIElement3DAutomationPeer.cs