home *** CD-ROM | disk | FTP | other *** search
- /*=====================================================================
- File: CSharpFieldInfo.cs
-
- Summary: Brief summary of the file contents and purpose.
-
- ---------------------------------------------------------------------
- This file is part of the Microsoft NGWS SDK Code Samples.
-
- Copyright (C) 2000 Microsoft Corporation. All rights reserved.
-
- This source code is intended only as a supplement to Microsoft
- Development Tools and/or on-line documentation. See these other
- materials for detailed information regarding Microsoft code samples.
-
- THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
- PARTICULAR PURPOSE.
- =====================================================================*/
-
- namespace LangUtil {
-
- using System;
- using System.Text;
- using System.Reflection;
- using System.Collections;
-
- public class CSharpFieldInfo : LangFieldInfo
- {
- public CSharpFieldInfo( FieldInfo myField ) : base( myField )
- {
- }
-
- public string FieldLangTypeName
- {
- override get
- {
- return new CSharpLangType( m_ThisFieldInfo.FieldType ).ClassName;
- }
- }
-
- public CSharpLangType FieldLangType
- {
- get { return new CSharpLangType( m_ThisFieldInfo.FieldType ); }
- }
-
- public Type ThisType
- {
- override get { return m_ThisFieldInfo.ReflectedType; }
- }
-
- public override bool IsField() { return true; }
-
- public String Name
- {
- override get{ return m_Name; }
- }
-
- public string TextDeclaration
- {
- override get
- {
- StringBuilder Syntax = new StringBuilder( Attributes + FieldLangTypeName );
- Syntax.Append( " " );
- Syntax.Append( m_Name );
- string temp = GetValueOfField();
- if ( !temp.Equals( String.Empty ) )
- {
- Syntax.Append( " = " + temp );
- }
- Syntax.Append( ";" );
- return Syntax.ToString();
- }
- }
-
- public string HTMLDeclaration
- {
- override get
- {
- StringBuilder Syntax = new StringBuilder( "<PRE class=\"Syntax\">" );
- Syntax.Append( "<span style=\"color:red\">[CSharp]</span><BR/><B>" );
- Syntax.Append( Attributes );
- Syntax.Append( FieldLangTypeName );
- Syntax.Append( " " );
- Syntax.Append( m_Name );
-
- string temp = GetValueOfField();
- if ( !temp.Equals( String.Empty ) )
- {
- Syntax.Append( " = " + temp );
- }
- Syntax.Append( ";" );
- Syntax.Append( "</B></PRE>" );
- return Syntax.ToString();
- }
- }
-
- /*
- <Syntax lang="MS Managed C++" ver="7.0">
- MustOverride Overloads Public Function GetEnumerator( _
- ByVal allowRemove As <XRef type="ValueType" name="System.Boolean">Boolean</Xref> _
- ) As <XRef type="Interface" name="System.Collections.IEnumerator">IEnumerator</XRef>
- </Syntax>
- */
-
- public string XMLDeclaration
- {
- override get
- {
- StringBuilder Syntax = new StringBuilder( "<Syntax lang=\"MS CSharp\" ver=\"7.0\"><Txt>" );
- Syntax.Append( Attributes );
- Syntax.Append( "</Txt>" + MakeXRef( FieldLangType.ThisType, FieldLangTypeName ) );
- Syntax.Append( "<Txt> " );
- Syntax.Append( m_Name );
-
- string temp = GetValueOfField();
- if ( !temp.Equals( String.Empty ) )
- {
- Syntax.Append( " = " + temp );
- }
- Syntax.Append( ";" );
- Syntax.Append( "</Txt></Syntax>" );
- return Syntax.ToString();
- }
- }
-
- public String Attributes
- {
- override get
- {
- StringBuilder sb = new StringBuilder();
-
- // APPEND ACCESS MODIFIER
- if ( m_ThisFieldInfo.IsPublic )
- sb.Append( "public " );
- else if ( m_ThisFieldInfo.IsPrivate )
- sb.Append( "private " );
- else if ( m_ThisFieldInfo.IsFamily )
- sb.Append( "protected " );
- else if ( m_ThisFieldInfo.IsAssembly )
- sb.Append( "internal " );
- else if ( m_ThisFieldInfo.IsFamilyAndAssembly )
- sb.Append( "FamilyAndAssembly " );
- else if ( m_ThisFieldInfo.IsFamilyOrAssembly )
- sb.Append( "FamilyOrAssembly " );
-
- if ( m_ThisFieldInfo.IsLiteral && m_ThisFieldInfo.IsStatic )
- sb.Append( "const " );
- // If both Literal and InitOnly and true then const and InitOnly are written
-
- if ( m_ThisFieldInfo.IsInitOnly )
- sb.Append( "readonly " );
- if ( m_ThisFieldInfo.IsStatic && !m_ThisFieldInfo.IsLiteral )
- sb.Append( "static " );
-
- return sb.ToString();
- }
- }
-
- } // End class
-
- } // namespace LangUtil
-
-