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
- TableItemStyle.cs
- EventManager.cs
- CommonDialog.cs
- CompositeClientFormatter.cs
- VersionedStream.cs
- CustomAttributeSerializer.cs
- CodeDomDesignerLoader.cs
- MetadataHelper.cs
- ObjectStateEntry.cs
- FocusManager.cs
- BitSet.cs
- Propagator.cs
- RadioButton.cs
- COM2Properties.cs
- PriorityQueue.cs
- safelinkcollection.cs
- AppendHelper.cs
- BooleanFacetDescriptionElement.cs
- LinkUtilities.cs
- WebPermission.cs
- StringPropertyBuilder.cs
- ServiceAuthorizationElement.cs
- SyndicationDeserializer.cs
- WorkflowRuntimeSection.cs
- PageThemeParser.cs
- TransactionOptions.cs
- TabRenderer.cs
- PersonalizablePropertyEntry.cs
- AnnotationResource.cs
- AuthenticatedStream.cs
- RotateTransform.cs
- XsltContext.cs
- RawAppCommandInputReport.cs
- ResetableIterator.cs
- GC.cs
- BaseAddressPrefixFilterElementCollection.cs
- HMAC.cs
- DataTableReaderListener.cs
- JobInputBins.cs
- XmlSchemaAnnotation.cs
- ParagraphVisual.cs
- UTF32Encoding.cs
- CodeTypeMember.cs
- ConsumerConnectionPoint.cs
- GeneralTransform2DTo3D.cs
- SessionStateItemCollection.cs
- RepeaterCommandEventArgs.cs
- StyleCollection.cs
- XmlLangPropertyAttribute.cs
- AsyncDataRequest.cs
- XmlSchemaElement.cs
- CultureMapper.cs
- RewritingSimplifier.cs
- IdentityNotMappedException.cs
- SudsParser.cs
- LineInfo.cs
- BindingContext.cs
- VisualStyleRenderer.cs
- CLRBindingWorker.cs
- GlyphElement.cs
- XamlValidatingReader.cs
- MediaTimeline.cs
- MultiTargetingUtil.cs
- CodeSnippetTypeMember.cs
- Deflater.cs
- HostSecurityManager.cs
- XmlUtf8RawTextWriter.cs
- KeySplineConverter.cs
- Utils.cs
- OutputCacheProfile.cs
- Rule.cs
- MetadataException.cs
- SoapIncludeAttribute.cs
- ConfigXmlSignificantWhitespace.cs
- ViewSimplifier.cs
- TargetParameterCountException.cs
- IdentitySection.cs
- WindowsGraphics2.cs
- ConcurrentDictionary.cs
- ConfigurationValue.cs
- Maps.cs
- DesignerUtility.cs
- SqlIdentifier.cs
- EncryptedXml.cs
- SpellCheck.cs
- FileLogRecordHeader.cs
- Expressions.cs
- SessionPageStatePersister.cs
- TextElementEnumerator.cs
- ElementInit.cs
- TraceLevelHelper.cs
- DataTableMapping.cs
- JsonReaderDelegator.cs
- ArrangedElementCollection.cs
- ItemCollection.cs
- SelectedDatesCollection.cs
- DataGridTablesFactory.cs
- XmlSubtreeReader.cs
- ConfigViewGenerator.cs
- FileSystemInfo.cs