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
- SafeRightsManagementQueryHandle.cs
- HttpContext.cs
- FacetDescriptionElement.cs
- ReferencedAssembly.cs
- RSAPKCS1SignatureFormatter.cs
- DesignTimeParseData.cs
- dbdatarecord.cs
- relpropertyhelper.cs
- OdbcConnectionOpen.cs
- SendingRequestEventArgs.cs
- FloatUtil.cs
- CustomAttributeFormatException.cs
- LayoutEvent.cs
- DmlSqlGenerator.cs
- OutputCacheSettingsSection.cs
- HWStack.cs
- LocalizationParserHooks.cs
- HttpHostedTransportConfiguration.cs
- BamlLocalizationDictionary.cs
- WebBaseEventKeyComparer.cs
- WorkflowMessageEventArgs.cs
- RoleManagerModule.cs
- DoubleLinkList.cs
- ListItemsCollectionEditor.cs
- ToolBar.cs
- GeometryDrawing.cs
- Win32.cs
- SqlConnectionHelper.cs
- COM2PictureConverter.cs
- MemberInfoSerializationHolder.cs
- DBDataPermission.cs
- AVElementHelper.cs
- Signature.cs
- InputMethodStateTypeInfo.cs
- DataControlFieldTypeEditor.cs
- Multiply.cs
- TextElementAutomationPeer.cs
- NGCUIElementCollectionSerializerAsync.cs
- DynamicResourceExtensionConverter.cs
- SqlDesignerDataSourceView.cs
- Misc.cs
- RotateTransform3D.cs
- PackageProperties.cs
- PipelineComponent.cs
- DocumentOrderQuery.cs
- WindowsTokenRoleProvider.cs
- InvalidCastException.cs
- AQNBuilder.cs
- NestPullup.cs
- MDIControlStrip.cs
- DataControlCommands.cs
- ObjectConverter.cs
- StoreItemCollection.cs
- EncoderReplacementFallback.cs
- VisualStyleTypesAndProperties.cs
- HtmlTernaryTree.cs
- HttpApplicationFactory.cs
- BidOverLoads.cs
- PrintingPermissionAttribute.cs
- LogEntryDeserializer.cs
- ShaderEffect.cs
- UserNameSecurityTokenAuthenticator.cs
- SiteMapDataSource.cs
- Enum.cs
- FixedSOMLineRanges.cs
- InvalidDataContractException.cs
- ParameterCollection.cs
- TdsParserStaticMethods.cs
- CacheHelper.cs
- Win32.cs
- MetafileHeader.cs
- __TransparentProxy.cs
- EdmRelationshipRoleAttribute.cs
- ZipFileInfo.cs
- _ShellExpression.cs
- UnmanagedMarshal.cs
- SigningProgress.cs
- WebPartTransformer.cs
- TransformPattern.cs
- KerberosRequestorSecurityToken.cs
- SHA256Managed.cs
- SchemaConstraints.cs
- VerificationException.cs
- FixedLineResult.cs
- BridgeDataRecord.cs
- PropertyItem.cs
- OrderedDictionary.cs
- ControlParameter.cs
- HandleValueEditor.cs
- RTLAwareMessageBox.cs
- GorillaCodec.cs
- DataTablePropertyDescriptor.cs
- DataGridViewAccessibleObject.cs
- AttachedPropertyMethodSelector.cs
- IImplicitResourceProvider.cs
- AutomationPeer.cs
- CodeRemoveEventStatement.cs
- PropertyIDSet.cs
- UntypedNullExpression.cs
- FlowLayoutPanel.cs