Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Hosting / WorkflowInstanceExtensionProvider.cs / 1305376 / WorkflowInstanceExtensionProvider.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Hosting { using System.Runtime; abstract class WorkflowInstanceExtensionProvider { protected WorkflowInstanceExtensionProvider() { } public Type Type { get; protected set; } protected bool GeneratedTypeMatchesDeclaredType { get; set; } public abstract object ProvideValue(); public bool IsMatch(object value) where TTarget : class { Fx.Assert(value != null, "extension providers never return a null extension"); if (value is TTarget) { if (this.GeneratedTypeMatchesDeclaredType) { return true; } else { return TypeHelper.AreReferenceTypesCompatible(this.Type, typeof(TTarget)); } } else { return false; } } } class WorkflowInstanceExtensionProvider : WorkflowInstanceExtensionProvider where T : class { Func providerFunction; bool hasGeneratedValue; public WorkflowInstanceExtensionProvider(Func providerFunction) : base() { this.providerFunction = providerFunction; base.Type = typeof(T); } public override object ProvideValue() { T value = this.providerFunction(); if (!this.hasGeneratedValue) { base.GeneratedTypeMatchesDeclaredType = object.ReferenceEquals(value.GetType(), this.Type); this.hasGeneratedValue = true; } return value; } } } // 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
- RelatedImageListAttribute.cs
- SystemPens.cs
- Speller.cs
- CqlParser.cs
- XpsTokenContext.cs
- Viewport3DVisual.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- CacheMemory.cs
- LiteralControl.cs
- ScrollBarAutomationPeer.cs
- TableRowGroup.cs
- MessageHeaderDescription.cs
- SafeLibraryHandle.cs
- PersistChildrenAttribute.cs
- FindCriteria11.cs
- InputLanguageSource.cs
- HashRepartitionStream.cs
- CompatibleIComparer.cs
- TypeUtil.cs
- DecimalConstantAttribute.cs
- CustomCategoryAttribute.cs
- HotSpotCollection.cs
- AspNetHostingPermission.cs
- RangeBase.cs
- ObjectList.cs
- PinnedBufferMemoryStream.cs
- ColumnMapCopier.cs
- ResourceAssociationSet.cs
- FieldToken.cs
- ParseNumbers.cs
- WebContext.cs
- CollectionViewSource.cs
- SiteMembershipCondition.cs
- StdValidatorsAndConverters.cs
- StructuralCache.cs
- HtmlProps.cs
- CreateUserWizardStep.cs
- BackStopAuthenticationModule.cs
- LexicalChunk.cs
- ImmutableCollection.cs
- HttpHandlerAction.cs
- EncryptedPackage.cs
- DBConcurrencyException.cs
- XmlQueryType.cs
- Matrix.cs
- ConfigurationManager.cs
- FunctionImportElement.cs
- ProfileEventArgs.cs
- ToolStripDesignerAvailabilityAttribute.cs
- TextRangeAdaptor.cs
- odbcmetadatacollectionnames.cs
- RequestCacheValidator.cs
- FormatException.cs
- RequestSecurityToken.cs
- IDReferencePropertyAttribute.cs
- XmlSchemaSequence.cs
- ObjectRef.cs
- PeerEndPoint.cs
- HMACSHA512.cs
- WebConfigurationHost.cs
- EventLogRecord.cs
- WebPartDeleteVerb.cs
- WindowsGraphicsWrapper.cs
- RelationshipWrapper.cs
- TextElementEnumerator.cs
- GridViewDeletedEventArgs.cs
- OleDbInfoMessageEvent.cs
- ThicknessAnimation.cs
- BackgroundWorker.cs
- ConfigXmlCDataSection.cs
- HttpListenerResponse.cs
- CustomSignedXml.cs
- CallbackValidator.cs
- SynchronousChannel.cs
- SmiConnection.cs
- AvtEvent.cs
- LinkLabelLinkClickedEvent.cs
- SubpageParagraph.cs
- _SslState.cs
- Animatable.cs
- ContentFilePart.cs
- TreeNodeConverter.cs
- KnownBoxes.cs
- TransactionChannelFactory.cs
- ErrorHandler.cs
- ArrayConverter.cs
- ExpressionBuilderContext.cs
- TextFormattingConverter.cs
- counter.cs
- TypeLibConverter.cs
- DataGridViewToolTip.cs
- HttpHandlersSection.cs
- DEREncoding.cs
- adornercollection.cs
- DBSqlParserTableCollection.cs
- HttpCapabilitiesBase.cs
- OptimalBreakSession.cs
- NamedObject.cs
- XamlTreeBuilder.cs
- SourceElementsCollection.cs