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
- XmlEncoding.cs
- PreservationFileWriter.cs
- WizardPanel.cs
- ErrorHandler.cs
- XmlSerializerAssemblyAttribute.cs
- Interlocked.cs
- RegisteredScript.cs
- HtmlForm.cs
- InputMethodStateTypeInfo.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ToolStripSettings.cs
- FileUtil.cs
- XmlWrappingReader.cs
- XmlDocument.cs
- SqlInfoMessageEvent.cs
- DataGridViewCellCollection.cs
- RemotingServices.cs
- XhtmlMobileTextWriter.cs
- UrlPath.cs
- TypeConverterBase.cs
- ResourceManager.cs
- BitmapEffectInputData.cs
- ByteStream.cs
- MatrixCamera.cs
- ApplicationDirectory.cs
- HttpContext.cs
- WebConfigurationFileMap.cs
- SqlWorkflowPersistenceService.cs
- COM2PictureConverter.cs
- MultiByteCodec.cs
- WindowsComboBox.cs
- MemberPath.cs
- DictionaryBase.cs
- StateRuntime.cs
- odbcmetadatacolumnnames.cs
- PeerNameRegistration.cs
- ValueQuery.cs
- TableSectionStyle.cs
- AsyncOperationContext.cs
- _ChunkParse.cs
- TreeNodeCollectionEditorDialog.cs
- AnonymousIdentificationSection.cs
- SocketElement.cs
- HebrewNumber.cs
- HostedTransportConfigurationManager.cs
- JavaScriptObjectDeserializer.cs
- CodeArgumentReferenceExpression.cs
- Point3D.cs
- PolyLineSegment.cs
- CodeIdentifiers.cs
- TryExpression.cs
- GroupPartitionExpr.cs
- HttpListenerException.cs
- DataList.cs
- ControlCachePolicy.cs
- ParallelTimeline.cs
- IndependentAnimationStorage.cs
- XmlImplementation.cs
- XPathNavigatorReader.cs
- connectionpool.cs
- NullPackagingPolicy.cs
- PreloadedPackages.cs
- NameNode.cs
- ObjectDataSource.cs
- PropertyExpression.cs
- ReaderContextStackData.cs
- StrokeFIndices.cs
- DrawingGroup.cs
- Config.cs
- PrinterResolution.cs
- VirtualDirectoryMapping.cs
- XmlSchemaChoice.cs
- ECDiffieHellmanCngPublicKey.cs
- webclient.cs
- UDPClient.cs
- BuildManager.cs
- PkcsUtils.cs
- Vector3DCollection.cs
- ListSourceHelper.cs
- IndexingContentUnit.cs
- URLBuilder.cs
- TimersDescriptionAttribute.cs
- ThemeDirectoryCompiler.cs
- Int64.cs
- SqlDataReaderSmi.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- PersonalizationProviderCollection.cs
- DataFormat.cs
- CoreChannel.cs
- ConversionContext.cs
- BuildProviderAppliesToAttribute.cs
- OracleTimeSpan.cs
- WebPartActionVerb.cs
- URLBuilder.cs
- CheckBoxStandardAdapter.cs
- ToolboxItemFilterAttribute.cs
- Logging.cs
- RouteParametersHelper.cs
- ProcessProtocolHandler.cs
- ConfigXmlComment.cs