Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / View / VBIdentifierName.cs / 1407647 / VBIdentifierName.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation.View { using System.Windows; using Microsoft.VisualBasic; using System.CodeDom.Compiler; using System.Globalization; using System.ComponentModel; using System.Xaml; using System.Xml; internal class VBIdentifierName : DependencyObject { public static readonly DependencyProperty IdentifierNameProperty = DependencyProperty.Register("IdentifierName", typeof(string), typeof(VBIdentifierName), new UIPropertyMetadata(OnIdentifierNameChanged)); public static readonly DependencyProperty IsValidProperty = DependencyProperty.Register("IsValid", typeof(bool), typeof(VBIdentifierName)); public static readonly DependencyProperty ErrorMessageProperty = DependencyProperty.Register("ErrorMessage", typeof(string), typeof(VBIdentifierName)); static VBCodeProvider vbProvider; static XamlSchemaContext xamlContext = new XamlSchemaContext(); static XamlType xamlType = new XamlType(typeof(string), xamlContext); bool checkAgainstXaml; VBCodeProvider VBProvider { get { if (vbProvider == null) { vbProvider = CodeDomProvider.CreateProvider("VisualBasic") as VBCodeProvider; } return vbProvider; } } public string ErrorMessage { get { return (string)GetValue(ErrorMessageProperty); } set { SetValue(ErrorMessageProperty, value); } } public bool IsValid { get { return (bool)GetValue(IsValidProperty); } set { SetValue(IsValidProperty, value); } } public string IdentifierName { get { return (string)GetValue(IdentifierNameProperty); } set { SetValue(IdentifierNameProperty, value); } } public bool CheckAgainstXaml { get { return this.checkAgainstXaml; } } public VBIdentifierName() { this.checkAgainstXaml = false; } public VBIdentifierName(bool checkAgainstXaml) { this.checkAgainstXaml = checkAgainstXaml; } static void OnIdentifierNameChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { ((VBIdentifierName)sender).OnIdentifierNameChanged(); } internal static bool IsValidXamlName(string name) { bool isValid = new XamlMember(name, xamlType, false).IsNameValid; if (isValid) { //Work around TFS bug #825815, in some cases, XamlMember.IsNameValid returns true but it's not valid Xml Name. try { XmlConvert.VerifyName(name); } catch (XmlException) { isValid = false; } } return isValid; } void OnIdentifierNameChanged() { string trimedName = this.IdentifierName; if (this.CheckAgainstXaml && !VBIdentifierName.IsValidXamlName(trimedName)) { this.IsValid = false; this.ErrorMessage = string.Format(CultureInfo.CurrentUICulture, SR.InvalidXamlMemberName, trimedName); } else if(!this.VBProvider.IsValidIdentifier(trimedName)) { this.IsValid = false; this.ErrorMessage = string.Format(CultureInfo.CurrentUICulture, SR.InvalidVisualBasicIdentifier, trimedName); } else if (trimedName.StartsWith("[", StringComparison.Ordinal) && trimedName.EndsWith("]", StringComparison.Ordinal)) { this.IsValid = false; this.ErrorMessage = string.Format(CultureInfo.CurrentUICulture, SR.InvalidVisualBasicIdentifier, trimedName); } else { this.IsValid = true; this.ErrorMessage = string.Empty; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation.View { using System.Windows; using Microsoft.VisualBasic; using System.CodeDom.Compiler; using System.Globalization; using System.ComponentModel; using System.Xaml; using System.Xml; internal class VBIdentifierName : DependencyObject { public static readonly DependencyProperty IdentifierNameProperty = DependencyProperty.Register("IdentifierName", typeof(string), typeof(VBIdentifierName), new UIPropertyMetadata(OnIdentifierNameChanged)); public static readonly DependencyProperty IsValidProperty = DependencyProperty.Register("IsValid", typeof(bool), typeof(VBIdentifierName)); public static readonly DependencyProperty ErrorMessageProperty = DependencyProperty.Register("ErrorMessage", typeof(string), typeof(VBIdentifierName)); static VBCodeProvider vbProvider; static XamlSchemaContext xamlContext = new XamlSchemaContext(); static XamlType xamlType = new XamlType(typeof(string), xamlContext); bool checkAgainstXaml; VBCodeProvider VBProvider { get { if (vbProvider == null) { vbProvider = CodeDomProvider.CreateProvider("VisualBasic") as VBCodeProvider; } return vbProvider; } } public string ErrorMessage { get { return (string)GetValue(ErrorMessageProperty); } set { SetValue(ErrorMessageProperty, value); } } public bool IsValid { get { return (bool)GetValue(IsValidProperty); } set { SetValue(IsValidProperty, value); } } public string IdentifierName { get { return (string)GetValue(IdentifierNameProperty); } set { SetValue(IdentifierNameProperty, value); } } public bool CheckAgainstXaml { get { return this.checkAgainstXaml; } } public VBIdentifierName() { this.checkAgainstXaml = false; } public VBIdentifierName(bool checkAgainstXaml) { this.checkAgainstXaml = checkAgainstXaml; } static void OnIdentifierNameChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { ((VBIdentifierName)sender).OnIdentifierNameChanged(); } internal static bool IsValidXamlName(string name) { bool isValid = new XamlMember(name, xamlType, false).IsNameValid; if (isValid) { //Work around TFS bug #825815, in some cases, XamlMember.IsNameValid returns true but it's not valid Xml Name. try { XmlConvert.VerifyName(name); } catch (XmlException) { isValid = false; } } return isValid; } void OnIdentifierNameChanged() { string trimedName = this.IdentifierName; if (this.CheckAgainstXaml && !VBIdentifierName.IsValidXamlName(trimedName)) { this.IsValid = false; this.ErrorMessage = string.Format(CultureInfo.CurrentUICulture, SR.InvalidXamlMemberName, trimedName); } else if(!this.VBProvider.IsValidIdentifier(trimedName)) { this.IsValid = false; this.ErrorMessage = string.Format(CultureInfo.CurrentUICulture, SR.InvalidVisualBasicIdentifier, trimedName); } else if (trimedName.StartsWith("[", StringComparison.Ordinal) && trimedName.EndsWith("]", StringComparison.Ordinal)) { this.IsValid = false; this.ErrorMessage = string.Format(CultureInfo.CurrentUICulture, SR.InvalidVisualBasicIdentifier, trimedName); } else { this.IsValid = true; this.ErrorMessage = string.Empty; } } } } // 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
- QueryResults.cs
- GlobalAllocSafeHandle.cs
- DetailsViewAutoFormat.cs
- XamlStyleSerializer.cs
- Grammar.cs
- PreservationFileReader.cs
- DataBindingHandlerAttribute.cs
- PowerStatus.cs
- IDQuery.cs
- DesignerRegion.cs
- TypeToStringValueConverter.cs
- XmlStreamStore.cs
- InvalidWMPVersionException.cs
- StrokeCollection2.cs
- UidManager.cs
- XmlAttribute.cs
- RoleBoolean.cs
- Column.cs
- RoutingService.cs
- DecodeHelper.cs
- FixedSOMPage.cs
- ExpandedProjectionNode.cs
- OutputCacheSection.cs
- OrderedDictionaryStateHelper.cs
- TextBox.cs
- WebPartsPersonalizationAuthorization.cs
- DemultiplexingDispatchMessageFormatter.cs
- Vector3DValueSerializer.cs
- Helpers.cs
- TabletDeviceInfo.cs
- ObjectQueryExecutionPlan.cs
- HandledMouseEvent.cs
- PageTheme.cs
- StylusPointCollection.cs
- ReaderWriterLockSlim.cs
- InnerItemCollectionView.cs
- EntityContainer.cs
- Crc32.cs
- GradientBrush.cs
- NameScope.cs
- metadatamappinghashervisitor.cs
- LineInfo.cs
- sqlmetadatafactory.cs
- SynchronizationContext.cs
- PowerModeChangedEventArgs.cs
- UniformGrid.cs
- XmlDownloadManager.cs
- XmlnsDictionary.cs
- ToolStripButton.cs
- DSACryptoServiceProvider.cs
- GcHandle.cs
- MenuItemStyleCollection.cs
- DescendentsWalker.cs
- Int16AnimationUsingKeyFrames.cs
- ReferenceSchema.cs
- COM2ExtendedBrowsingHandler.cs
- CmsInterop.cs
- KerberosSecurityTokenProvider.cs
- XmlDataSource.cs
- Size3D.cs
- XPathNavigator.cs
- InputReferenceExpression.cs
- NumericUpDown.cs
- List.cs
- Function.cs
- ModelUIElement3D.cs
- AttributeEmitter.cs
- SqlDataRecord.cs
- ServiceOperationUIEditor.cs
- VariableAction.cs
- TableItemProviderWrapper.cs
- BrowserCapabilitiesFactoryBase.cs
- ProfileService.cs
- GridViewRowEventArgs.cs
- StringValueConverter.cs
- __TransparentProxy.cs
- MarkupExtensionParser.cs
- DocumentReferenceCollection.cs
- ControlPaint.cs
- WindowsFormsHelpers.cs
- SiteMapNode.cs
- CorrelationManager.cs
- SurrogateDataContract.cs
- HandlerFactoryWrapper.cs
- CultureSpecificStringDictionary.cs
- GridView.cs
- Convert.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- Rectangle.cs
- StylusShape.cs
- FrameworkElementFactory.cs
- webproxy.cs
- MessageRpc.cs
- SelectedDatesCollection.cs
- Int32AnimationBase.cs
- InternalTransaction.cs
- WebPartManager.cs
- CodeObject.cs
- SystemGatewayIPAddressInformation.cs
- EnumValidator.cs