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
- AbstractDataSvcMapFileLoader.cs
- DesignObjectWrapper.cs
- XmlResolver.cs
- FontInfo.cs
- keycontainerpermission.cs
- WindowsTab.cs
- DbProviderServices.cs
- WebPartConnectionCollection.cs
- XmlWrappingReader.cs
- DiscoveryMessageSequence11.cs
- SerializationFieldInfo.cs
- RenderDataDrawingContext.cs
- SecurityUtils.cs
- RemotingException.cs
- EntitySetRetriever.cs
- BitSet.cs
- AuthenticationSchemesHelper.cs
- TickBar.cs
- OutArgumentConverter.cs
- ByteViewer.cs
- KnownBoxes.cs
- Setter.cs
- UTF32Encoding.cs
- JsonFormatWriterGenerator.cs
- EntryPointNotFoundException.cs
- UIElement.cs
- SubMenuStyleCollection.cs
- GeneralTransform3D.cs
- ClientData.cs
- DataGridColumnCollectionEditor.cs
- DesignBindingValueUIHandler.cs
- ChangeProcessor.cs
- ToolStripItem.cs
- SqlDataSourceView.cs
- RsaSecurityToken.cs
- ScriptResourceMapping.cs
- CollectionBuilder.cs
- CodeAttributeDeclarationCollection.cs
- BindingElement.cs
- OdbcPermission.cs
- Timer.cs
- ManagedFilter.cs
- HtmlForm.cs
- MouseButtonEventArgs.cs
- EntityDataSourceDesignerHelper.cs
- XmlMtomReader.cs
- NativeRecognizer.cs
- OracleConnectionFactory.cs
- ProbeMatchesMessage11.cs
- ComboBox.cs
- TdsParserStateObject.cs
- StringDictionaryCodeDomSerializer.cs
- Oid.cs
- InkCanvasInnerCanvas.cs
- DateTimeOffset.cs
- DataGridViewSelectedCellCollection.cs
- WriteTimeStream.cs
- Selection.cs
- MsmqTransportSecurity.cs
- NameService.cs
- TextServicesLoader.cs
- ListViewContainer.cs
- Menu.cs
- RuleSettings.cs
- RegexInterpreter.cs
- VisualStyleElement.cs
- SimpleTypeResolver.cs
- SocketSettings.cs
- User.cs
- NodeLabelEditEvent.cs
- ConfigurationValidatorAttribute.cs
- IUnknownConstantAttribute.cs
- PngBitmapDecoder.cs
- DateBoldEvent.cs
- DataControlFieldHeaderCell.cs
- XmlQueryType.cs
- ProfileModule.cs
- SafeCloseHandleCritical.cs
- OleDbSchemaGuid.cs
- DataGridViewRowHeaderCell.cs
- IdentityHolder.cs
- XmlAttributeProperties.cs
- RegexCompilationInfo.cs
- DataTableReaderListener.cs
- ConfigurationLocation.cs
- StringPropertyBuilder.cs
- ILGenerator.cs
- RuntimeHandles.cs
- ToolStripPanelRow.cs
- ProviderIncompatibleException.cs
- RelatedImageListAttribute.cs
- BinaryObjectInfo.cs
- MetabaseSettings.cs
- FieldInfo.cs
- Table.cs
- ButtonField.cs
- OutputCacheModule.cs
- Int16AnimationUsingKeyFrames.cs
- xmlformatgeneratorstatics.cs
- NameGenerator.cs