Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / ResourceReferenceExpressionConverter.cs / 1 / ResourceReferenceExpressionConverter.cs
//----------------------------------------------------------------------------
//
// File: ResourceReferenceExpressionConverter.cs
//
// Description:
// TypeConverter for a resource value expression
//
// Copyright (C) 2003 by Microsoft Corporation. All rights reserved.
//
//---------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Globalization;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics;
using System.Windows;
namespace System.Windows.Markup
{
///
/// TypeConverter for a resource value expression
///
public class ResourceReferenceExpressionConverter : ExpressionConverter
{
///
/// TypeConverter method override.
///
///
/// ITypeDescriptorContext
///
///
/// Type to convert from
///
///
/// true if conversion is possible
///
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return base.CanConvertFrom(context, sourceType);
}
///
/// TypeConverter method override.
///
///
/// For avalon serialization this converter
/// returns true for string types only if the
/// target element with the resource
/// dictionary for the current resource
/// reference is also being serialized. Else
/// it returns false and the serialization
/// engine must serialize the evaluated
/// value of the expression.
///
///
/// ITypeDescriptorContext
///
///
/// Type to convert to
///
///
/// true if conversion is possible
///
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
// Validate Input Arguments
if (destinationType == null)
{
throw new ArgumentNullException("destinationType");
}
//MarkupExtention
if (destinationType == typeof(MarkupExtension))
return true;
return base.CanConvertTo(context, destinationType);
}
///
/// TypeConverter method implementation.
///
///
/// ITypeDescriptorContext
///
///
/// current culture (see CLR specs)
///
///
/// value to convert from
///
///
/// value that is result of conversion
///
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return base.ConvertFrom(context, culture, value);
}
///
/// TypeConverter method implementation.
///
///
/// ITypeDescriptorContext
///
///
/// current culture (see CLR specs)
///
///
/// value to convert from
///
///
/// Type to convert to
///
///
/// converted value
///
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
{
// Validate Input Arguments
ResourceReferenceExpression expr = value as ResourceReferenceExpression;
if (expr == null)
{
throw new ArgumentException(SR.Get(SRID.MustBeOfType, "value", "ResourceReferenceExpression"));
}
if (destinationType == null)
{
throw new ArgumentNullException("destinationType");
}
// MarkupExtension
if (destinationType == typeof(MarkupExtension))
{
return new DynamicResourceExtension(expr.ResourceKey);
}
return base.ConvertTo(context, culture, value, destinationType);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------------------
//
// File: ResourceReferenceExpressionConverter.cs
//
// Description:
// TypeConverter for a resource value expression
//
// Copyright (C) 2003 by Microsoft Corporation. All rights reserved.
//
//---------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Globalization;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics;
using System.Windows;
namespace System.Windows.Markup
{
///
/// TypeConverter for a resource value expression
///
public class ResourceReferenceExpressionConverter : ExpressionConverter
{
///
/// TypeConverter method override.
///
///
/// ITypeDescriptorContext
///
///
/// Type to convert from
///
///
/// true if conversion is possible
///
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return base.CanConvertFrom(context, sourceType);
}
///
/// TypeConverter method override.
///
///
/// For avalon serialization this converter
/// returns true for string types only if the
/// target element with the resource
/// dictionary for the current resource
/// reference is also being serialized. Else
/// it returns false and the serialization
/// engine must serialize the evaluated
/// value of the expression.
///
///
/// ITypeDescriptorContext
///
///
/// Type to convert to
///
///
/// true if conversion is possible
///
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
// Validate Input Arguments
if (destinationType == null)
{
throw new ArgumentNullException("destinationType");
}
//MarkupExtention
if (destinationType == typeof(MarkupExtension))
return true;
return base.CanConvertTo(context, destinationType);
}
///
/// TypeConverter method implementation.
///
///
/// ITypeDescriptorContext
///
///
/// current culture (see CLR specs)
///
///
/// value to convert from
///
///
/// value that is result of conversion
///
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
return base.ConvertFrom(context, culture, value);
}
///
/// TypeConverter method implementation.
///
///
/// ITypeDescriptorContext
///
///
/// current culture (see CLR specs)
///
///
/// value to convert from
///
///
/// Type to convert to
///
///
/// converted value
///
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
{
// Validate Input Arguments
ResourceReferenceExpression expr = value as ResourceReferenceExpression;
if (expr == null)
{
throw new ArgumentException(SR.Get(SRID.MustBeOfType, "value", "ResourceReferenceExpression"));
}
if (destinationType == null)
{
throw new ArgumentNullException("destinationType");
}
// MarkupExtension
if (destinationType == typeof(MarkupExtension))
{
return new DynamicResourceExtension(expr.ResourceKey);
}
return base.ConvertTo(context, culture, value, destinationType);
}
}
}
// 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
- SafeHandles.cs
- SharedConnectionWorkflowTransactionService.cs
- Perspective.cs
- mediaeventargs.cs
- Win32.cs
- SqlDataReader.cs
- SecurityHeaderElementInferenceEngine.cs
- ScriptControl.cs
- MobileRedirect.cs
- MappedMetaModel.cs
- ProjectionCamera.cs
- PropertyGrid.cs
- Triplet.cs
- SymbolDocumentInfo.cs
- UrlUtility.cs
- TextEncodedRawTextWriter.cs
- SiblingIterators.cs
- CultureInfo.cs
- QueryOutputWriter.cs
- TypeConverterHelper.cs
- EntitySqlQueryCacheKey.cs
- SoundPlayer.cs
- ExpressionContext.cs
- QilUnary.cs
- AuthenticateEventArgs.cs
- ItemContainerProviderWrapper.cs
- ChannelManager.cs
- ChangePasswordAutoFormat.cs
- WebPartVerbCollection.cs
- BeginStoryboard.cs
- GridViewSelectEventArgs.cs
- ContainerUIElement3D.cs
- CollectionChangedEventManager.cs
- ValidatingReaderNodeData.cs
- SchemaTableColumn.cs
- UserPersonalizationStateInfo.cs
- VBIdentifierDesigner.xaml.cs
- ToggleProviderWrapper.cs
- CodeGeneratorAttribute.cs
- MarshalDirectiveException.cs
- MessageEncodingBindingElementImporter.cs
- ElementUtil.cs
- CompoundFileStreamReference.cs
- ClaimTypes.cs
- PartBasedPackageProperties.cs
- PowerStatus.cs
- FontFaceLayoutInfo.cs
- ImageSource.cs
- CacheSection.cs
- ApplicationInfo.cs
- LayoutTableCell.cs
- RadioButtonStandardAdapter.cs
- MaskDescriptors.cs
- GradientPanel.cs
- MetadataItemEmitter.cs
- PasswordPropertyTextAttribute.cs
- TreePrinter.cs
- SQLInt64.cs
- NameNode.cs
- MemoryMappedFileSecurity.cs
- InvalidCommandTreeException.cs
- FileIOPermission.cs
- UnsafeNativeMethods.cs
- Material.cs
- SHA384Managed.cs
- TextEndOfSegment.cs
- recordstatefactory.cs
- MsmqInputMessagePool.cs
- HtmlEncodedRawTextWriter.cs
- DesignerLabelAdapter.cs
- CallContext.cs
- PasswordRecovery.cs
- FormsAuthenticationEventArgs.cs
- Inline.cs
- FigureParaClient.cs
- XmlAttributeCollection.cs
- BaseParser.cs
- IPipelineRuntime.cs
- X509CertificateCollection.cs
- ListViewItemEventArgs.cs
- PageAdapter.cs
- TreeNodeCollection.cs
- SafeCertificateStore.cs
- AuthenticationException.cs
- ClickablePoint.cs
- ParsedRoute.cs
- GenericTypeParameterBuilder.cs
- MetaColumn.cs
- COM2PropertyPageUITypeConverter.cs
- ExclusiveCanonicalizationTransform.cs
- TextTabProperties.cs
- DynamicObject.cs
- AuthenticationSection.cs
- FormsIdentity.cs
- SerializationEventsCache.cs
- CodeTypeMemberCollection.cs
- URI.cs
- DataServices.cs
- XmlChildEnumerator.cs
- BitmapEffect.cs