Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / SecurityAttributeGenerationHelper.cs / 1 / SecurityAttributeGenerationHelper.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Channels { using System.CodeDom; using System.Xml; static class SecurityAttributeGenerationHelper { public static CodeAttributeDeclaration FindOrCreateAttributeDeclaration(CodeAttributeDeclarationCollection attributes) where T : Attribute { if (attributes == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("attributes"); CodeTypeReference refT = new CodeTypeReference(typeof(T)); foreach (CodeAttributeDeclaration attribute in attributes) if (attribute.AttributeType.BaseType == refT.BaseType) return attribute; CodeAttributeDeclaration result = new CodeAttributeDeclaration(refT); attributes.Add(result); return result; } public static void CreateOrOverridePropertyDeclaration (CodeAttributeDeclaration attribute, string propertyName, V value) { if (attribute == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("attribute"); if (propertyName == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("propertyName"); CodeExpression newValue; if (value is TimeSpan) newValue = new CodeObjectCreateExpression( typeof(TimeSpan), new CodePrimitiveExpression(((TimeSpan)(object)value).Ticks)); else if (value is Enum) newValue = new CodeFieldReferenceExpression( new CodeTypeReferenceExpression(typeof(V)), ((object)value).ToString()); else newValue = new CodePrimitiveExpression((object)value); CodeAttributeArgument attributeProperty = TryGetAttributeProperty(attribute, propertyName); if (attributeProperty == null) { attributeProperty = new CodeAttributeArgument(propertyName, newValue); attribute.Arguments.Add(attributeProperty); } else attributeProperty.Value = newValue; } public static CodeAttributeArgument TryGetAttributeProperty(CodeAttributeDeclaration attribute, string propertyName) { if (attribute == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("attribute"); if (propertyName == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("propertyName"); foreach (CodeAttributeArgument argument in attribute.Arguments) if (argument.Name == propertyName) return argument; return null; } } } // 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
- ClientSettingsStore.cs
- Rotation3D.cs
- AudienceUriMode.cs
- _IPv6Address.cs
- DataGridViewRowCancelEventArgs.cs
- EventData.cs
- UInt16Converter.cs
- Pen.cs
- RefreshPropertiesAttribute.cs
- DataGridColumnHeaderCollection.cs
- XXXOnTypeBuilderInstantiation.cs
- ButtonBase.cs
- WindowProviderWrapper.cs
- TreeNodeConverter.cs
- SqlConnectionString.cs
- PathFigureCollection.cs
- BypassElementCollection.cs
- InteropTrackingRecord.cs
- Vector3D.cs
- MetadataItemSerializer.cs
- DropShadowEffect.cs
- CacheForPrimitiveTypes.cs
- DelayedRegex.cs
- ListenerElementsCollection.cs
- brushes.cs
- XmlDeclaration.cs
- Cursors.cs
- ClickablePoint.cs
- ServerValidateEventArgs.cs
- InvalidPrinterException.cs
- Model3DGroup.cs
- StateManagedCollection.cs
- ContentOperations.cs
- ValidationSummary.cs
- EdmComplexTypeAttribute.cs
- DataSourceViewSchemaConverter.cs
- CodeRegionDirective.cs
- DurableEnlistmentState.cs
- WebPartConnectionsCloseVerb.cs
- TransactionInformation.cs
- EraserBehavior.cs
- SqlDataSourceView.cs
- CompilerGeneratedAttribute.cs
- WindowsListViewSubItem.cs
- RequiredFieldValidator.cs
- SqlXml.cs
- NodeCounter.cs
- Identifier.cs
- ScriptIgnoreAttribute.cs
- DynamicDocumentPaginator.cs
- Thread.cs
- OpenTypeCommon.cs
- CommandID.cs
- Constants.cs
- DynamicRenderer.cs
- ButtonBase.cs
- userdatakeys.cs
- CompositeActivityCodeGenerator.cs
- CodeTypeDeclaration.cs
- WebPartCollection.cs
- BlobPersonalizationState.cs
- DBSchemaTable.cs
- Camera.cs
- IndexedString.cs
- X509ImageLogo.cs
- LinearGradientBrush.cs
- Int64Converter.cs
- XPathNavigator.cs
- AppDomainShutdownMonitor.cs
- GlyphTypeface.cs
- DBSqlParserTableCollection.cs
- NativeMethods.cs
- SqlMetaData.cs
- SourceChangedEventArgs.cs
- CollectionType.cs
- FastEncoderWindow.cs
- ThreadInterruptedException.cs
- RectangleGeometry.cs
- oledbmetadatacollectionnames.cs
- SHA1Managed.cs
- WebPartDisplayModeEventArgs.cs
- SourceInterpreter.cs
- MonthCalendarDesigner.cs
- MULTI_QI.cs
- ByteStack.cs
- PublishLicense.cs
- MenuItemCollectionEditor.cs
- MissingMethodException.cs
- ChangeTracker.cs
- _SingleItemRequestCache.cs
- XmlSchemaNotation.cs
- SizeValueSerializer.cs
- ActivityDesignerLayoutSerializers.cs
- PerformanceCounterLib.cs
- DataGridViewHeaderCell.cs
- CodeAssignStatement.cs
- ObjectAssociationEndMapping.cs
- ProcessDesigner.cs
- TextParentUndoUnit.cs
- ItemCheckEvent.cs