Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TdsParserSessionPool.cs
- Propagator.cs
- XmlException.cs
- SineEase.cs
- FormsAuthenticationModule.cs
- XsltLibrary.cs
- XmlSchema.cs
- WindowsFormsLinkLabel.cs
- Metadata.cs
- ScriptingWebServicesSectionGroup.cs
- MimeWriter.cs
- DictionaryCustomTypeDescriptor.cs
- ConnectionPointCookie.cs
- ReflectionServiceProvider.cs
- XsltSettings.cs
- BamlMapTable.cs
- CqlLexer.cs
- ParseHttpDate.cs
- TrackingStringDictionary.cs
- ProfileManager.cs
- FontStyle.cs
- COM2ExtendedBrowsingHandler.cs
- HashMembershipCondition.cs
- ExecutedRoutedEventArgs.cs
- ErrorTableItemStyle.cs
- TargetControlTypeCache.cs
- dataprotectionpermission.cs
- TextEditorLists.cs
- ListBindingHelper.cs
- HttpValueCollection.cs
- MessageContractExporter.cs
- TypeUtil.cs
- PropertyInformation.cs
- XMLSyntaxException.cs
- DesignerVerb.cs
- ContentHostHelper.cs
- CacheModeValueSerializer.cs
- QueryCreatedEventArgs.cs
- OleStrCAMarshaler.cs
- Stack.cs
- PrivateFontCollection.cs
- DurationConverter.cs
- MergePropertyDescriptor.cs
- DSACryptoServiceProvider.cs
- CompositeControl.cs
- HttpCacheParams.cs
- PopupRootAutomationPeer.cs
- followingsibling.cs
- DataGridViewComboBoxColumnDesigner.cs
- NetTcpSecurityElement.cs
- LifetimeServices.cs
- PrimarySelectionAdorner.cs
- AdornerPresentationContext.cs
- InputLanguageEventArgs.cs
- DataGridViewColumnEventArgs.cs
- DeflateStreamAsyncResult.cs
- RemoteWebConfigurationHostStream.cs
- XsdValidatingReader.cs
- QilDataSource.cs
- CategoryGridEntry.cs
- DesignerAttributeInfo.cs
- MetaModel.cs
- Internal.cs
- OleDbConnectionFactory.cs
- XpsInterleavingPolicy.cs
- SqlDataSourceStatusEventArgs.cs
- PrintDialog.cs
- ClientUtils.cs
- XmlDsigSep2000.cs
- DispatcherOperation.cs
- NavigatorInput.cs
- ContainerUIElement3D.cs
- RelationshipEnd.cs
- _NativeSSPI.cs
- AnnotationService.cs
- SettingsAttributeDictionary.cs
- LineSegment.cs
- ImportCatalogPart.cs
- ContentElement.cs
- XmlTextWriter.cs
- DateTimeValueSerializerContext.cs
- ManagementObjectSearcher.cs
- QilCloneVisitor.cs
- DataSourceConverter.cs
- FixedSOMPageConstructor.cs
- SpecialFolderEnumConverter.cs
- FrameworkElementAutomationPeer.cs
- ScaleTransform.cs
- ProcessHostFactoryHelper.cs
- MergablePropertyAttribute.cs
- SqlFileStream.cs
- CheckBoxAutomationPeer.cs
- RowsCopiedEventArgs.cs
- PerfCounters.cs
- UrlPropertyAttribute.cs
- DataGridTable.cs
- SQLUtility.cs
- InfoCardKeyedHashAlgorithm.cs
- BuildProviderCollection.cs
- ellipse.cs