Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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: [....] : 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
- HotSpot.cs
- RegexEditorDialog.cs
- Mappings.cs
- coordinatorfactory.cs
- SecurityDocument.cs
- IPeerNeighbor.cs
- DefaultValueAttribute.cs
- SchemaObjectWriter.cs
- FullTextState.cs
- LateBoundBitmapDecoder.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- MessagingDescriptionAttribute.cs
- DataStorage.cs
- AssemblyHelper.cs
- DirectionalLight.cs
- DataGrid.cs
- StyleCollectionEditor.cs
- FormViewUpdatedEventArgs.cs
- XmlSchemaInfo.cs
- HtmlTableCellCollection.cs
- DataErrorValidationRule.cs
- ImageDrawing.cs
- DiscoveryCallbackBehavior.cs
- StateBag.cs
- DataObjectCopyingEventArgs.cs
- CookieHandler.cs
- SafeBitVector32.cs
- SqlNotificationEventArgs.cs
- XmlSchemaSet.cs
- LogStream.cs
- CustomPopupPlacement.cs
- TreeViewDesigner.cs
- FormViewUpdateEventArgs.cs
- BitmapSizeOptions.cs
- IOThreadTimer.cs
- DataBindingCollectionEditor.cs
- DataGridViewRowCollection.cs
- Int32CollectionValueSerializer.cs
- OneOfScalarConst.cs
- InputScope.cs
- DefaultSerializationProviderAttribute.cs
- ExpandedWrapper.cs
- DictionaryTraceRecord.cs
- AuthorizationRuleCollection.cs
- ToolStripStatusLabel.cs
- ConfigViewGenerator.cs
- SocketStream.cs
- LineMetrics.cs
- Line.cs
- XsltOutput.cs
- AppSettingsReader.cs
- SplitterEvent.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- XmlValidatingReader.cs
- _HelperAsyncResults.cs
- UniqueIdentifierService.cs
- Matrix.cs
- ISO2022Encoding.cs
- XamlUtilities.cs
- HandlerBase.cs
- DynamicDataRoute.cs
- ContentPresenter.cs
- FileDialog.cs
- invalidudtexception.cs
- input.cs
- CommentEmitter.cs
- Highlights.cs
- GridViewRowPresenterBase.cs
- RIPEMD160Managed.cs
- FutureFactory.cs
- SBCSCodePageEncoding.cs
- SortExpressionBuilder.cs
- Freezable.cs
- DesignerDataSourceView.cs
- ClientRoleProvider.cs
- TimelineClockCollection.cs
- XPathParser.cs
- Walker.cs
- DebugView.cs
- FontInfo.cs
- FocusTracker.cs
- HttpBufferlessInputStream.cs
- StsCommunicationException.cs
- HttpCookieCollection.cs
- PackageController.cs
- TextLineResult.cs
- QuaternionKeyFrameCollection.cs
- MasterPageBuildProvider.cs
- PriorityBindingExpression.cs
- DataAdapter.cs
- RegistryKey.cs
- StateFinalizationActivity.cs
- GridView.cs
- MatrixTransform3D.cs
- ReceiveMessageContent.cs
- SortDescriptionCollection.cs
- ArgumentNullException.cs
- TempFiles.cs
- AutoCompleteStringCollection.cs
- Transactions.cs