Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Base / System / Security / RightsManagement / LocalizedNameDescriptionPair.cs / 1 / LocalizedNameDescriptionPair.cs
//------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: This class represents an immutable pair of Strings (Name, Description) // That are generally used to represent name and description of an unsigned publish license // (a.k.a. template). Unsigned Publish License has property called LocalizedNameDescriptionDictionary // which holds a map of a local Id to a Name Description pair, in order to support scenarios of // building locale specific template browsing applications. // // History: // 11/14/2005: IgorBel : Initial Implementation // //----------------------------------------------------------------------------- using System; using System.Collections; using System.Diagnostics; using System.Globalization; using System.Windows; using MS.Internal.Security.RightsManagement; using SecurityHelper=MS.Internal.WindowsBase.SecurityHelper; // Allow use of presharp warning numbers [6506] and [6518] unknown to the compiler #pragma warning disable 1634, 1691 namespace System.Security.RightsManagement { ////// LocalizedNameDescriptionPair class represent an immutable (Name, Description) pair of strings. This is /// a basic building block for structures that need to express locale specific information about /// Unsigned Publish Licenses. /// ////// Critical: This class exposes access to methods that eventually do one or more of the following /// 1. call into unmanaged code /// 2. affects state/data that will eventually cross over unmanaged code boundary /// 3. Return some RM related information which is considered private /// /// TreatAsSafe: This attrbiute automatically applied to all public entry points. All the public entry points have /// Demands for RightsManagementPermission at entry to counter the possible attacks that do /// not lead to the unamanged code directly(which is protected by another Demand there) but rather leave /// some status/data behind which eventually might cross the unamanaged boundary. /// [SecurityCritical(SecurityCriticalScope.Everything)] public class LocalizedNameDescriptionPair { ////// Constructor for the read only LocalizedNameDescriptionPair class. It takes values for Name and Description as parameters. /// public LocalizedNameDescriptionPair(string name, string description) { SecurityHelper.DemandRightsManagementPermission(); if (name == null) { throw new ArgumentNullException("name"); } if (description == null) { throw new ArgumentNullException("description"); } _name = name; _description = description; } ////// Read only Name property. /// public string Name { get { SecurityHelper.DemandRightsManagementPermission(); return _name; } } ////// Read only Description property. /// public string Description { get { SecurityHelper.DemandRightsManagementPermission(); return _description; } } ////// Test for equality. /// public override bool Equals(object obj) { SecurityHelper.DemandRightsManagementPermission(); if ((obj == null) || (obj.GetType() != GetType())) { return false; } LocalizedNameDescriptionPair localizedNameDescr = obj as LocalizedNameDescriptionPair; //PRESHARP:Parameter to this public method must be validated: A null-dereference can occur here. //This is a false positive as the checks above can gurantee no null dereference will occur #pragma warning disable 6506 return (String.CompareOrdinal(localizedNameDescr.Name, Name) == 0) && (String.CompareOrdinal(localizedNameDescr.Description, Description) == 0); #pragma warning restore 6506 } ////// Compute hash code. /// public override int GetHashCode() { SecurityHelper.DemandRightsManagementPermission(); return Name.GetHashCode() ^ Description.GetHashCode(); } private string _name; private string _description; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: This class represents an immutable pair of Strings (Name, Description) // That are generally used to represent name and description of an unsigned publish license // (a.k.a. template). Unsigned Publish License has property called LocalizedNameDescriptionDictionary // which holds a map of a local Id to a Name Description pair, in order to support scenarios of // building locale specific template browsing applications. // // History: // 11/14/2005: IgorBel : Initial Implementation // //----------------------------------------------------------------------------- using System; using System.Collections; using System.Diagnostics; using System.Globalization; using System.Windows; using MS.Internal.Security.RightsManagement; using SecurityHelper=MS.Internal.WindowsBase.SecurityHelper; // Allow use of presharp warning numbers [6506] and [6518] unknown to the compiler #pragma warning disable 1634, 1691 namespace System.Security.RightsManagement { ////// LocalizedNameDescriptionPair class represent an immutable (Name, Description) pair of strings. This is /// a basic building block for structures that need to express locale specific information about /// Unsigned Publish Licenses. /// ////// Critical: This class exposes access to methods that eventually do one or more of the following /// 1. call into unmanaged code /// 2. affects state/data that will eventually cross over unmanaged code boundary /// 3. Return some RM related information which is considered private /// /// TreatAsSafe: This attrbiute automatically applied to all public entry points. All the public entry points have /// Demands for RightsManagementPermission at entry to counter the possible attacks that do /// not lead to the unamanged code directly(which is protected by another Demand there) but rather leave /// some status/data behind which eventually might cross the unamanaged boundary. /// [SecurityCritical(SecurityCriticalScope.Everything)] public class LocalizedNameDescriptionPair { ////// Constructor for the read only LocalizedNameDescriptionPair class. It takes values for Name and Description as parameters. /// public LocalizedNameDescriptionPair(string name, string description) { SecurityHelper.DemandRightsManagementPermission(); if (name == null) { throw new ArgumentNullException("name"); } if (description == null) { throw new ArgumentNullException("description"); } _name = name; _description = description; } ////// Read only Name property. /// public string Name { get { SecurityHelper.DemandRightsManagementPermission(); return _name; } } ////// Read only Description property. /// public string Description { get { SecurityHelper.DemandRightsManagementPermission(); return _description; } } ////// Test for equality. /// public override bool Equals(object obj) { SecurityHelper.DemandRightsManagementPermission(); if ((obj == null) || (obj.GetType() != GetType())) { return false; } LocalizedNameDescriptionPair localizedNameDescr = obj as LocalizedNameDescriptionPair; //PRESHARP:Parameter to this public method must be validated: A null-dereference can occur here. //This is a false positive as the checks above can gurantee no null dereference will occur #pragma warning disable 6506 return (String.CompareOrdinal(localizedNameDescr.Name, Name) == 0) && (String.CompareOrdinal(localizedNameDescr.Description, Description) == 0); #pragma warning restore 6506 } ////// Compute hash code. /// public override int GetHashCode() { SecurityHelper.DemandRightsManagementPermission(); return Name.GetHashCode() ^ Description.GetHashCode(); } private string _name; private string _description; } } // 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
- CategoryNameCollection.cs
- RowToFieldTransformer.cs
- FontUnitConverter.cs
- MatrixCamera.cs
- ObjectRef.cs
- Action.cs
- XmlCDATASection.cs
- DtdParser.cs
- DrawTreeNodeEventArgs.cs
- FileSystemEventArgs.cs
- ToolStripItemClickedEventArgs.cs
- FixedTextSelectionProcessor.cs
- ReferenceService.cs
- FunctionDetailsReader.cs
- BufferBuilder.cs
- CodePageEncoding.cs
- SafeCoTaskMem.cs
- LiteralLink.cs
- ExceptionAggregator.cs
- odbcmetadatacollectionnames.cs
- DataSourceComponent.cs
- BadImageFormatException.cs
- AsymmetricSignatureFormatter.cs
- ClientSettings.cs
- Char.cs
- ReferenceConverter.cs
- PrintController.cs
- EnvironmentPermission.cs
- XPathException.cs
- WeakReferenceKey.cs
- RouteItem.cs
- DbParameterHelper.cs
- WebPartExportVerb.cs
- AssemblySettingAttributes.cs
- ReaderContextStackData.cs
- OrderablePartitioner.cs
- ThreadWorkerController.cs
- QilName.cs
- Point3DCollection.cs
- StatusBarPanelClickEvent.cs
- DBConnection.cs
- QilPatternFactory.cs
- SuppressMessageAttribute.cs
- MaterialCollection.cs
- JsonFaultDetail.cs
- CrossSiteScriptingValidation.cs
- GestureRecognizer.cs
- WebPartMenuStyle.cs
- RuntimeArgumentHandle.cs
- DataTableExtensions.cs
- AnimationStorage.cs
- FontStyle.cs
- ObjectItemCachedAssemblyLoader.cs
- SQLByteStorage.cs
- CacheMemory.cs
- TextDecorationLocationValidation.cs
- MissingMethodException.cs
- LinearGradientBrush.cs
- LoginUtil.cs
- Regex.cs
- DetailsViewDeleteEventArgs.cs
- SqlNodeAnnotations.cs
- AutoCompleteStringCollection.cs
- AsyncCompletedEventArgs.cs
- WebPartsSection.cs
- OperatingSystemVersionCheck.cs
- CacheHelper.cs
- XPathNavigator.cs
- SqlConnectionPoolGroupProviderInfo.cs
- MLangCodePageEncoding.cs
- StickyNoteHelper.cs
- CodePropertyReferenceExpression.cs
- ScrollChrome.cs
- RenderCapability.cs
- ListViewEditEventArgs.cs
- DataGridViewComboBoxCell.cs
- ParagraphVisual.cs
- SaveWorkflowCommand.cs
- UInt32Converter.cs
- PolicyLevel.cs
- WebRequestModulesSection.cs
- CodeTypeDeclarationCollection.cs
- XmlDataCollection.cs
- ArgumentDesigner.xaml.cs
- SplineKeyFrames.cs
- LayeredChannelListener.cs
- TreeWalkHelper.cs
- Section.cs
- CompiledQueryCacheEntry.cs
- SoapExtensionReflector.cs
- TextCollapsingProperties.cs
- CalculatedColumn.cs
- SystemInfo.cs
- CodeObjectCreateExpression.cs
- MobileTextWriter.cs
- TemplateComponentConnector.cs
- XamlReaderHelper.cs
- PingOptions.cs
- EditCommandColumn.cs
- SecurityPermission.cs