Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / CodeDOM / CodeTypeDeclaration.cs / 1305376 / CodeTypeDeclaration.cs
//------------------------------------------------------------------------------
//
//
// [....]
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.CodeDom {
using System.Diagnostics;
using System;
using Microsoft.Win32;
using System.Collections;
using System.Reflection;
using System.Runtime.Serialization;
using System.Runtime.InteropServices;
///
///
/// Represents a
/// class or nested class.
///
///
[
ClassInterface(ClassInterfaceType.AutoDispatch),
ComVisible(true),
Serializable,
]
public class CodeTypeDeclaration : CodeTypeMember {
private TypeAttributes attributes = Reflection.TypeAttributes.Public | Reflection.TypeAttributes.Class;
private CodeTypeReferenceCollection baseTypes = new CodeTypeReferenceCollection();
private CodeTypeMemberCollection members = new CodeTypeMemberCollection();
private bool isEnum;
private bool isStruct;
private int populated = 0x0;
private const int BaseTypesCollection = 0x1;
private const int MembersCollection = 0x2;
// Need to be made optionally serializable
[OptionalField]
private CodeTypeParameterCollection typeParameters;
[OptionalField]
private bool isPartial = false;
///
///
/// An event that will be fired the first time the BaseTypes Collection is accessed.
///
///
public event EventHandler PopulateBaseTypes;
///
///
/// An event that will be fired the first time the Members Collection is accessed.
///
///
public event EventHandler PopulateMembers;
///
///
/// Initializes a new instance of .
///
///
public CodeTypeDeclaration() {
}
///
///
/// Initializes a new instance of with the specified name.
///
///
public CodeTypeDeclaration(string name) {
Name = name;
}
///
///
/// Gets or sets the attributes of the class.
///
///
public TypeAttributes TypeAttributes {
get {
return attributes;
}
set {
attributes = value;
}
}
///
///
/// Gets or sets
/// the base types of the class.
///
///
public CodeTypeReferenceCollection BaseTypes {
get {
if (0 == (populated & BaseTypesCollection)) {
populated |= BaseTypesCollection;
if (PopulateBaseTypes != null) PopulateBaseTypes(this, EventArgs.Empty);
}
return baseTypes;
}
}
///
///
/// Gets or sets a value
/// indicating whether the class is a class.
///
///
public bool IsClass {
get {
return(attributes & TypeAttributes.ClassSemanticsMask) == TypeAttributes.Class && !isEnum && !isStruct;
}
set {
if (value) {
attributes &= ~TypeAttributes.ClassSemanticsMask;
attributes |= TypeAttributes.Class;
isStruct = false;
isEnum = false;
}
}
}
///
///
/// Gets or sets a value
/// indicating whether the class is a struct.
///
///
public bool IsStruct {
get {
return isStruct;
}
set {
if (value) {
attributes &= ~TypeAttributes.ClassSemanticsMask;
isStruct = true;
isEnum = false;
}
else {
isStruct = false;
}
}
}
///
///
/// Gets or sets a value
/// indicating whether the class is an enumeration.
///
///
public bool IsEnum {
get {
return isEnum;
}
set {
if (value) {
attributes &= ~TypeAttributes.ClassSemanticsMask;
isStruct = false;
isEnum = true;
}
else {
isEnum = false;
}
}
}
///
///
/// Gets or sets a value
/// indicating whether the class is an interface.
///
///
public bool IsInterface {
get {
return(attributes & TypeAttributes.ClassSemanticsMask) == TypeAttributes.Interface;
}
set {
if (value) {
attributes &= ~TypeAttributes.ClassSemanticsMask;
attributes |= TypeAttributes.Interface;
isStruct = false;
isEnum = false;
}
else {
attributes &= ~TypeAttributes.Interface;
}
}
}
public bool IsPartial {
get {
return isPartial;
}
set {
isPartial = value;
}
}
///
///
/// Gets or sets the class member collection members.
///
///
public CodeTypeMemberCollection Members {
get {
if (0 == (populated & MembersCollection)) {
populated |= MembersCollection;
if (PopulateMembers != null) PopulateMembers(this, EventArgs.Empty);
}
return members;
}
}
[System.Runtime.InteropServices.ComVisible(false)]
public CodeTypeParameterCollection TypeParameters {
get {
if( typeParameters == null) {
typeParameters = new CodeTypeParameterCollection();
}
return typeParameters;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- COM2ExtendedUITypeEditor.cs
- AppearanceEditorPart.cs
- printdlgexmarshaler.cs
- OletxEnlistment.cs
- ProfileModule.cs
- DesignerSelectionListAdapter.cs
- SponsorHelper.cs
- KeyProperty.cs
- AsyncResult.cs
- ExtenderControl.cs
- Model3D.cs
- ControlValuePropertyAttribute.cs
- RTTrackingProfile.cs
- SmtpCommands.cs
- WebPartMenuStyle.cs
- AssertFilter.cs
- UInt64Converter.cs
- CollectionEditor.cs
- GPPOINTF.cs
- DbConvert.cs
- VirtualDirectoryMapping.cs
- Helpers.cs
- Italic.cs
- PublisherIdentityPermission.cs
- Int32CAMarshaler.cs
- ServiceProviders.cs
- EmptyEnumerator.cs
- ResXResourceWriter.cs
- MailMessageEventArgs.cs
- BCryptHashAlgorithm.cs
- _NTAuthentication.cs
- SQLInt32Storage.cs
- SamlAction.cs
- CfgRule.cs
- DropDownButton.cs
- WebPartMinimizeVerb.cs
- XmlSchemaAttribute.cs
- Vector3DIndependentAnimationStorage.cs
- HierarchicalDataSourceControl.cs
- HtmlTableCellCollection.cs
- SqlTrackingService.cs
- OptimalTextSource.cs
- Accessible.cs
- ExceptionHandlerDesigner.cs
- ToolStripMenuItemCodeDomSerializer.cs
- PrinterUnitConvert.cs
- LoginCancelEventArgs.cs
- Rule.cs
- XmlWrappingReader.cs
- altserialization.cs
- HwndHost.cs
- RuntimeCompatibilityAttribute.cs
- WebPartUserCapability.cs
- EUCJPEncoding.cs
- SafePEFileHandle.cs
- SystemWebCachingSectionGroup.cs
- CustomCategoryAttribute.cs
- Clipboard.cs
- WebPartConnection.cs
- CapabilitiesAssignment.cs
- XmlSchemas.cs
- StreamWriter.cs
- FixedDocumentPaginator.cs
- ChameleonKey.cs
- CqlLexerHelpers.cs
- AdditionalEntityFunctions.cs
- SqlCacheDependencyDatabase.cs
- VariableQuery.cs
- TemplateLookupAction.cs
- WebExceptionStatus.cs
- InfiniteTimeSpanConverter.cs
- SoapMessage.cs
- ISAPIApplicationHost.cs
- InternalConfigSettingsFactory.cs
- AtomEntry.cs
- CodeLinePragma.cs
- TypeConverter.cs
- TTSEvent.cs
- SQLSingle.cs
- XmlSchemaInfo.cs
- FileReservationCollection.cs
- SecurityManager.cs
- DynamicUpdateCommand.cs
- XpsResource.cs
- DataObjectAttribute.cs
- StringAnimationUsingKeyFrames.cs
- OdbcConnection.cs
- BinaryObjectWriter.cs
- SafeThreadHandle.cs
- Base64WriteStateInfo.cs
- ToolStripOverflow.cs
- TypeToken.cs
- EventProxy.cs
- GorillaCodec.cs
- _ProxyRegBlob.cs
- ProgressBarAutomationPeer.cs
- WebChannelFactory.cs
- ConnectionStringSettingsCollection.cs
- SqlTriggerAttribute.cs
- SHA256Managed.cs