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
- _SafeNetHandles.cs
- RadialGradientBrush.cs
- GenericTypeParameterBuilder.cs
- QilValidationVisitor.cs
- RunInstallerAttribute.cs
- Tablet.cs
- ColumnHeader.cs
- PassportAuthentication.cs
- SqlDataAdapter.cs
- XmlWrappingWriter.cs
- TcpAppDomainProtocolHandler.cs
- FormViewDeleteEventArgs.cs
- SqlBooleanMismatchVisitor.cs
- ServerIdentity.cs
- mansign.cs
- Compiler.cs
- NamespaceMapping.cs
- Configuration.cs
- DefaultAssemblyResolver.cs
- TemplateNameScope.cs
- FileSecurity.cs
- Color.cs
- FunctionParameter.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- XmlUTF8TextWriter.cs
- AudioFileOut.cs
- CodeTypeMemberCollection.cs
- NavigationPropertySingletonExpression.cs
- ModuleElement.cs
- odbcmetadatafactory.cs
- XPathDocumentNavigator.cs
- RelAssertionDirectKeyIdentifierClause.cs
- RemotingSurrogateSelector.cs
- XmlSchemaDatatype.cs
- Metadata.cs
- XmlSiteMapProvider.cs
- _CommandStream.cs
- AddInActivator.cs
- DesignTimeParseData.cs
- xmlglyphRunInfo.cs
- WorkflowNamespace.cs
- EmptyReadOnlyDictionaryInternal.cs
- Vector3DAnimation.cs
- ModifierKeysConverter.cs
- WindowsRichEdit.cs
- StringDictionaryCodeDomSerializer.cs
- SecurityHeader.cs
- RuleSettings.cs
- RegexMatch.cs
- SourceFilter.cs
- FixedStringLookup.cs
- COM2PropertyDescriptor.cs
- StatusBarPanelClickEvent.cs
- XmlAttributeProperties.cs
- CellLabel.cs
- List.cs
- Int64Animation.cs
- FilePrompt.cs
- MetadataArtifactLoaderComposite.cs
- JsonQueryStringConverter.cs
- NotifyParentPropertyAttribute.cs
- DataGridViewColumnCollectionDialog.cs
- ScalarType.cs
- WebMessageBodyStyleHelper.cs
- ObjectQueryProvider.cs
- NamedPipeTransportElement.cs
- PropertyPanel.cs
- SRGSCompiler.cs
- WebPartConnectionsEventArgs.cs
- PageContent.cs
- WinFormsSecurity.cs
- SqlClientWrapperSmiStreamChars.cs
- NativeMethods.cs
- DbConnectionPoolGroup.cs
- SqlTypeConverter.cs
- WorkflowDesignerColors.cs
- TextLineResult.cs
- ExpressionPrefixAttribute.cs
- TakeQueryOptionExpression.cs
- DataGridViewCellStyleConverter.cs
- WeakRefEnumerator.cs
- DesignerVerbToolStripMenuItem.cs
- MailSettingsSection.cs
- HandleExceptionArgs.cs
- CalloutQueueItem.cs
- StringUtil.cs
- RegexGroup.cs
- HttpModuleAction.cs
- TopClause.cs
- Rect.cs
- DataGridViewAdvancedBorderStyle.cs
- AliasedExpr.cs
- SessionPageStateSection.cs
- ImageCollectionEditor.cs
- AlternateViewCollection.cs
- DataGridItemCollection.cs
- Decoder.cs
- HwndSourceKeyboardInputSite.cs
- HtmlInputHidden.cs
- Group.cs