Code:
/ 4.0 / 4.0 / 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. 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
- _OverlappedAsyncResult.cs
- FormsAuthenticationCredentials.cs
- Splitter.cs
- DbParameterCollection.cs
- CodeArrayIndexerExpression.cs
- DataGridViewColumnHeaderCell.cs
- HostVisual.cs
- XmlSchemaComplexContentRestriction.cs
- SafeNativeMethods.cs
- WebServiceErrorEvent.cs
- Point3D.cs
- HttpApplication.cs
- ScriptControlManager.cs
- XmlBindingWorker.cs
- LogExtentCollection.cs
- ExportFileRequest.cs
- Serializer.cs
- ResourcePermissionBase.cs
- AsyncPostBackTrigger.cs
- ProcessHost.cs
- Label.cs
- ResizeGrip.cs
- PopupRootAutomationPeer.cs
- ManifestResourceInfo.cs
- SqlCacheDependencySection.cs
- RawUIStateInputReport.cs
- FormViewCommandEventArgs.cs
- DrawTreeNodeEventArgs.cs
- DataPagerField.cs
- HelpKeywordAttribute.cs
- LoadMessageLogger.cs
- ResXBuildProvider.cs
- ServiceObjectContainer.cs
- HtmlDocument.cs
- Variant.cs
- CodeDefaultValueExpression.cs
- MarkupWriter.cs
- DTCTransactionManager.cs
- QuaternionIndependentAnimationStorage.cs
- EntityContainerEmitter.cs
- KoreanCalendar.cs
- DesignerActionMethodItem.cs
- SecurityUtils.cs
- ContextMarshalException.cs
- ObjectRef.cs
- TerminatorSinks.cs
- UIElementAutomationPeer.cs
- Rotation3DKeyFrameCollection.cs
- TextClipboardData.cs
- HMACSHA1.cs
- NamedPipeWorkerProcess.cs
- BoundingRectTracker.cs
- XamlUtilities.cs
- DeclaredTypeElementCollection.cs
- ErrorTableItemStyle.cs
- RtfToXamlLexer.cs
- SQLBoolean.cs
- ConstNode.cs
- CheckBoxRenderer.cs
- cookieexception.cs
- AutomationTextAttribute.cs
- CacheModeValueSerializer.cs
- RelationshipConverter.cs
- XmlNavigatorFilter.cs
- SinglePageViewer.cs
- TextAction.cs
- SurrogateDataContract.cs
- TemplateNameScope.cs
- HttpListener.cs
- DuplicateWaitObjectException.cs
- ClientTarget.cs
- SystemIcmpV6Statistics.cs
- SQlBooleanStorage.cs
- BoolExpr.cs
- ToolboxItemAttribute.cs
- MgmtConfigurationRecord.cs
- ControlCollection.cs
- ObjectTokenCategory.cs
- DES.cs
- DataTrigger.cs
- CharEnumerator.cs
- ExceptionHelpers.cs
- DataRowExtensions.cs
- PrtTicket_Editor.cs
- InkPresenterAutomationPeer.cs
- TypedTableBase.cs
- PlainXmlWriter.cs
- XmlCharCheckingWriter.cs
- EntityKey.cs
- FusionWrap.cs
- MailAddressParser.cs
- MutableAssemblyCacheEntry.cs
- RootBuilder.cs
- ReferentialConstraint.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- ComplexBindingPropertiesAttribute.cs
- ListViewInsertedEventArgs.cs
- ViewStateException.cs
- IOThreadScheduler.cs
- Base64Encoder.cs