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
- SchemaAttDef.cs
- TimeBoundedCache.cs
- RuntimeEnvironment.cs
- TogglePattern.cs
- XmlQueryCardinality.cs
- UserNameSecurityTokenAuthenticator.cs
- SystemIcmpV4Statistics.cs
- QueueProcessor.cs
- mil_commands.cs
- __Filters.cs
- UITypeEditor.cs
- PersonalizationProviderHelper.cs
- RowsCopiedEventArgs.cs
- SoapElementAttribute.cs
- ZipIOCentralDirectoryFileHeader.cs
- TextEndOfParagraph.cs
- PolicyUnit.cs
- StrongNameUtility.cs
- _HeaderInfoTable.cs
- PriorityRange.cs
- WindowProviderWrapper.cs
- SQLMoney.cs
- WasEndpointConfigContainer.cs
- rsa.cs
- SyncMethodInvoker.cs
- NamespaceMapping.cs
- FormsAuthenticationUser.cs
- TextEncodedRawTextWriter.cs
- IdleTimeoutMonitor.cs
- EnumValAlphaComparer.cs
- Literal.cs
- InvalidateEvent.cs
- SequenceRange.cs
- Border.cs
- PrtTicket_Editor.cs
- DragCompletedEventArgs.cs
- XPathDocumentNavigator.cs
- XmlNamespaceDeclarationsAttribute.cs
- NullableBoolConverter.cs
- MobileErrorInfo.cs
- SortableBindingList.cs
- ExpandedWrapper.cs
- XmlQueryTypeFactory.cs
- CollectionBase.cs
- Rect3DConverter.cs
- MetadataPropertyvalue.cs
- TreeViewImageIndexConverter.cs
- Scene3D.cs
- EditorPartCollection.cs
- TcpDuplicateContext.cs
- SecurityTokenInclusionMode.cs
- DefaultBindingPropertyAttribute.cs
- WorkflowInstance.cs
- ControlCachePolicy.cs
- DesignerLabelAdapter.cs
- DataGridTable.cs
- MdiWindowListStrip.cs
- WebBrowsableAttribute.cs
- EllipseGeometry.cs
- TemplatedWizardStep.cs
- userdatakeys.cs
- RoleManagerSection.cs
- DataGridColumnEventArgs.cs
- DataTrigger.cs
- HtmlProps.cs
- SqlReorderer.cs
- WebPartDeleteVerb.cs
- AuthorizationContext.cs
- SafeViewOfFileHandle.cs
- RTLAwareMessageBox.cs
- XmlHierarchicalEnumerable.cs
- FileIOPermission.cs
- StringCollection.cs
- AnnotationHelper.cs
- DropDownHolder.cs
- CornerRadiusConverter.cs
- FixedLineResult.cs
- AssemblyFilter.cs
- FactoryId.cs
- ParamArrayAttribute.cs
- IgnorePropertiesAttribute.cs
- CodeBlockBuilder.cs
- CodeExporter.cs
- DataControlFieldCollection.cs
- TokenBasedSetEnumerator.cs
- ValidationEventArgs.cs
- StatusBarItemAutomationPeer.cs
- XPathCompiler.cs
- UserControlCodeDomTreeGenerator.cs
- DataTableReader.cs
- TreeNodeStyleCollection.cs
- XmlSchemaAnnotated.cs
- PathFigureCollection.cs
- ExpandCollapsePattern.cs
- CellIdBoolean.cs
- XmlFormatExtensionPointAttribute.cs
- XmlUrlResolver.cs
- DecoderExceptionFallback.cs
- ToolBarTray.cs
- ConfigXmlSignificantWhitespace.cs