//------------------------------------------------------------------------------
//
//
// [....]
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//------------------------------------------------------------------------------
namespace System.CodeDom {
using System.Diagnostics;
using System;
using Microsoft.Win32;
using System.Collections;
using System.Runtime.InteropServices;
///
///
/// Represents a class property.
///
///
[
ClassInterface(ClassInterfaceType.AutoDispatch),
ComVisible(true),
Serializable,
]
public class CodeMemberProperty : CodeTypeMember {
private CodeTypeReference type;
private CodeParameterDeclarationExpressionCollection parameters = new CodeParameterDeclarationExpressionCollection();
private bool hasGet;
private bool hasSet;
private CodeStatementCollection getStatements = new CodeStatementCollection();
private CodeStatementCollection setStatements = new CodeStatementCollection();
private CodeTypeReference privateImplements = null;
private CodeTypeReferenceCollection implementationTypes = null;
///
/// [To be supplied.]
///
public CodeTypeReference PrivateImplementationType {
get {
return privateImplements;
}
set {
privateImplements = value;
}
}
///
/// [To be supplied.]
///
public CodeTypeReferenceCollection ImplementationTypes {
get {
if (implementationTypes == null) {
implementationTypes = new CodeTypeReferenceCollection();
}
return implementationTypes;
}
}
///
/// Gets or sets the data type of the property.
///
public CodeTypeReference Type {
get {
if (type == null) {
type = new CodeTypeReference("");
}
return type;
}
set {
type = value;
}
}
///
///
/// Gets a value
/// indicating whether the property has a get method accessor.
///
///
public bool HasGet {
get {
return hasGet || getStatements.Count > 0;
}
set {
hasGet = value;
if (!value) {
getStatements.Clear();
}
}
}
///
///
/// Gets a value
/// indicating whether the property has a set method accessor.
///
///
public bool HasSet {
get {
return hasSet || setStatements.Count > 0;
}
set {
hasSet = value;
if (!value) {
setStatements.Clear();
}
}
}
///
///
/// Gets or sets the collection of get statements for the
/// property.
///
///
public CodeStatementCollection GetStatements {
get {
return getStatements;
}
}
///
///
/// Gets or sets the collection of get statements for the property.
///
///
public CodeStatementCollection SetStatements {
get {
return setStatements;
}
}
///
///
/// Gets or sets the collection of declaration expressions
/// for
/// the property.
///
///
public CodeParameterDeclarationExpressionCollection Parameters {
get {
return parameters;
}
}
}
}