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
- SafeFindHandle.cs
- DockPatternIdentifiers.cs
- WorkItem.cs
- ColumnResizeAdorner.cs
- DataControlButton.cs
- GridViewDeleteEventArgs.cs
- TableDetailsCollection.cs
- GenericAuthenticationEventArgs.cs
- URLAttribute.cs
- ManagedFilter.cs
- AppDomainProtocolHandler.cs
- TextServicesCompartment.cs
- CustomErrorCollection.cs
- StandardTransformFactory.cs
- IItemContainerGenerator.cs
- SystemWebSectionGroup.cs
- WriteableOnDemandStream.cs
- listviewsubitemcollectioneditor.cs
- ContextMarshalException.cs
- RemotingConfiguration.cs
- TableItemPattern.cs
- UTF32Encoding.cs
- PolicyException.cs
- WebControlParameterProxy.cs
- TraceLog.cs
- ErrorHandler.cs
- _SslStream.cs
- EpmContentSerializer.cs
- MemberBinding.cs
- HttpResponseHeader.cs
- FontClient.cs
- DataGridItem.cs
- SqlConnectionManager.cs
- PngBitmapEncoder.cs
- UIElement.cs
- _ListenerAsyncResult.cs
- TypeGenericEnumerableViewSchema.cs
- GZipStream.cs
- NetCodeGroup.cs
- DesignerAdapterUtil.cs
- TraceContextRecord.cs
- BaseCodeDomTreeGenerator.cs
- FixedSOMElement.cs
- ActivityInfo.cs
- HexParser.cs
- ASCIIEncoding.cs
- DebugView.cs
- HideDisabledControlAdapter.cs
- Setter.cs
- _CacheStreams.cs
- BorderGapMaskConverter.cs
- XPathDocumentIterator.cs
- DynamicPropertyHolder.cs
- RoleService.cs
- ResourcePermissionBase.cs
- webeventbuffer.cs
- URL.cs
- SmtpReplyReader.cs
- TimeSpanValidator.cs
- HtmlPhoneCallAdapter.cs
- XmlSchemaAnnotated.cs
- CatalogPartCollection.cs
- AddingNewEventArgs.cs
- IODescriptionAttribute.cs
- Item.cs
- TypeDescriptionProviderAttribute.cs
- Control.cs
- ReadOnlyMetadataCollection.cs
- GenericEnumerator.cs
- ComponentCodeDomSerializer.cs
- TextBoxAutomationPeer.cs
- HitTestWithGeometryDrawingContextWalker.cs
- SecurityException.cs
- BuildDependencySet.cs
- UnsafeNativeMethods.cs
- DataGridTable.cs
- HttpRuntimeSection.cs
- DocumentSchemaValidator.cs
- XmlTextAttribute.cs
- DeviceContext2.cs
- PrePrepareMethodAttribute.cs
- ParseNumbers.cs
- followingquery.cs
- MimeFormImporter.cs
- IPipelineRuntime.cs
- Highlights.cs
- Schema.cs
- Animatable.cs
- SafeNativeMethods.cs
- Speller.cs
- WpfKnownType.cs
- PopupRootAutomationPeer.cs
- EventBookmark.cs
- SortDescription.cs
- PenCursorManager.cs
- LoginView.cs
- Model3D.cs
- DataGridColumnCollection.cs
- TrustManagerPromptUI.cs
- FileUpload.cs