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
- Stroke.cs
- Utils.cs
- DataControlImageButton.cs
- MenuEventArgs.cs
- CodeParameterDeclarationExpression.cs
- MbpInfo.cs
- TypographyProperties.cs
- CssClassPropertyAttribute.cs
- BindingSource.cs
- OleCmdHelper.cs
- ExpandoClass.cs
- ConfigurationManagerHelper.cs
- _ShellExpression.cs
- LoginUtil.cs
- GenericIdentity.cs
- MethodBody.cs
- ValidatorAttribute.cs
- CacheEntry.cs
- OleDbPropertySetGuid.cs
- CompilerScope.Storage.cs
- ThreadExceptionDialog.cs
- ScalarConstant.cs
- StatusBarPanelClickEvent.cs
- TypeContext.cs
- SqlDataReaderSmi.cs
- ClientRequest.cs
- AdapterUtil.cs
- IDispatchConstantAttribute.cs
- XmlNodeList.cs
- CacheModeConverter.cs
- MatcherBuilder.cs
- Type.cs
- LinkLabelLinkClickedEvent.cs
- Marshal.cs
- GenericRootAutomationPeer.cs
- _Win32.cs
- XmlSchemaObjectTable.cs
- ValuePatternIdentifiers.cs
- XsdCachingReader.cs
- DataBindingCollection.cs
- DocumentXPathNavigator.cs
- AstTree.cs
- Native.cs
- WebSysDescriptionAttribute.cs
- SessionPageStateSection.cs
- VScrollBar.cs
- MachineKeySection.cs
- SqlDataSourceConfigureSelectPanel.cs
- ProcessThread.cs
- BitmapSizeOptions.cs
- TransformerInfo.cs
- InvalidateEvent.cs
- ListViewGroup.cs
- CharacterBufferReference.cs
- SafeNativeMethods.cs
- UrlPath.cs
- SpeechRecognizer.cs
- TypeConverterAttribute.cs
- TextRunTypographyProperties.cs
- SystemException.cs
- EpmContentSerializerBase.cs
- LiteralDesigner.cs
- KeyConverter.cs
- UserPreferenceChangingEventArgs.cs
- HttpCookie.cs
- BamlBinaryReader.cs
- ToolBar.cs
- Bold.cs
- CommandTreeTypeHelper.cs
- SwitchCase.cs
- ProtectedConfiguration.cs
- Image.cs
- StringUtil.cs
- XamlReaderConstants.cs
- EpmSourcePathSegment.cs
- TreeView.cs
- OdbcPermission.cs
- XPathBuilder.cs
- ValidationErrorEventArgs.cs
- Avt.cs
- UnknownWrapper.cs
- DeploymentExceptionMapper.cs
- _BasicClient.cs
- ResponseStream.cs
- ThumbAutomationPeer.cs
- CheckBoxBaseAdapter.cs
- AutomationElementCollection.cs
- TypedReference.cs
- XmlSchemaInclude.cs
- Psha1DerivedKeyGeneratorHelper.cs
- WebResponse.cs
- AssemblySettingAttributes.cs
- DbConnectionStringBuilder.cs
- CompositeControl.cs
- CompositeDesignerAccessibleObject.cs
- FixedSOMPageElement.cs
- ZipIOCentralDirectoryFileHeader.cs
- FontSizeConverter.cs
- ipaddressinformationcollection.cs
- FontNamesConverter.cs