.NET Framework Class Library
Type.IsContextfulImpl Method
Implements the IsContextful property and determines whether the Type can be hosted in a context.
Assembly: mscorlib (in mscorlib.dll)
Syntax
Visual Basic
Protected Overridable Function IsContextfulImpl As Boolean
C#
protected virtual bool IsContextfulImpl()
Visual C++
protected: virtual bool IsContextfulImpl()
F#
abstract IsContextfulImpl : unit -> bool override IsContextfulImpl : unit -> bool
Remarks
This method can be overridden by a derived class.
A context intercepts calls to the class members and enforce policies that are applied to the class, such as synchronization.
Examples
The following example demonstrates a use of the IsContextfulImpl method.
Visual Basic
Imports System Imports System.Reflection Imports Microsoft.VisualBasic Public Class MyTypeDelegatorClass Inherits TypeDelegator Public myElementType As String = Nothing Private myType As Type = Nothing Public Sub New(ByVal myType As Type) MyBase.New(myType) Me.myType = myType End Sub 'New ' Override IsContextfulImpl. Protected Overrides Function IsContextfulImpl() As Boolean ' Check whether the type is contextful. If myType.IsContextful Then myElementType = " is contextful " Return True End If Return False End Function 'IsContextfulImpl End Class 'MyTypeDelegatorClass Public Class MyTypeDemoClass Public Shared Sub Main() Try Dim myType As MyTypeDelegatorClass Console.WriteLine("Check whether MyContextBoundClass can be hosted in a context.") ' Check whether MyContextBoundClass is contextful. myType = New MyTypeDelegatorClass(GetType(MyContextBoundClass)) If myType.IsContextful Then Console.WriteLine(GetType(MyContextBoundClass).ToString() + " can be hosted in a context.") Else Console.WriteLine(GetType(MyContextBoundClass).ToString() + " cannot be hosted in a context.") End If ' Check whether the int type is contextful. myType = New MyTypeDelegatorClass(GetType(MyTypeDemoClass)) Console.WriteLine(ControlChars.NewLine + "Check whether MyTypeDemoClass can be hosted in a context.") If myType.IsContextful Then Console.WriteLine(GetType(MyTypeDemoClass).ToString() + " can be hosted in a context.") Else Console.WriteLine(GetType(MyTypeDemoClass).ToString() + " cannot be hosted in a context.") End If Catch e As Exception Console.WriteLine("Exception: {0}", e.Message.ToString()) End Try End Sub 'Main End Class 'MyTypeDemoClass ' This class demonstrates the IsContextfulImpl method. Public Class MyContextBoundClass Inherits ContextBoundObject Public myString As String = "This class is used to demonstrate members of the Type class." End Class 'MyContextBoundClass
C#
using System; using System.Reflection; public class MyTypeDelegatorClass : TypeDelegator { public string myElementType = null; private Type myType = null ; public MyTypeDelegatorClass(Type myType) : base(myType) { this.myType = myType; } // Override IsContextfulImpl. protected override bool IsContextfulImpl() { // Check whether the type is contextful. if(myType.IsContextful) { myElementType = " is contextful "; return true; } return false; } } public class MyTypeDemoClass { public static void Main() { try { MyTypeDelegatorClass myType; Console.WriteLine ("Check whether MyContextBoundClass can be hosted in a context."); // Check whether MyContextBoundClass is contextful. myType = new MyTypeDelegatorClass(typeof(MyContextBoundClass)); if( myType.IsContextful) { Console.WriteLine(typeof(MyContextBoundClass) + " can be hosted in a context."); } else { Console.WriteLine(typeof(MyContextBoundClass) + " cannot be hosted in a context."); } // Check whether the int type is contextful. myType = new MyTypeDelegatorClass(typeof(MyTypeDemoClass)); Console.WriteLine ("\nCheck whether MyTypeDemoClass can be hosted in a context."); if( myType.IsContextful) { Console.WriteLine(typeof(MyTypeDemoClass) + " can be hosted in a context."); } else { Console.WriteLine(typeof(MyTypeDemoClass) + " cannot be hosted in a context."); } } catch( Exception e ) { Console.WriteLine("Exception: {0}", e.Message); } } } // This class demonstrates IsContextfulImpl. public class MyContextBoundClass : ContextBoundObject { public string myString = "This class is used to demonstrate members of the Type class."; }
Visual C++
using namespace System; using namespace System::Reflection; public ref class MyTypeDelegatorClass: public TypeDelegator { public: String^ myElementType; private: Type^ myType; public: MyTypeDelegatorClass( Type^ myType ) : TypeDelegator( myType ) { this->myType = myType; } protected: // Override IsContextfulImpl. virtual bool IsContextfulImpl() override { // Check whether the type is contextful. if ( myType->IsContextful ) { myElementType = " is contextful "; return true; } return false; } }; public ref class MyTypeDemoClass{}; // This class demonstrates IsContextfulImpl. public ref class MyContextBoundClass: public ContextBoundObject { public: String^ myString; }; int main() { try { MyTypeDelegatorClass^ myType; Console::WriteLine( "Check whether MyContextBoundClass can be hosted in a context." ); // Check whether MyContextBoundClass is contextful. myType = gcnew MyTypeDelegatorClass( MyContextBoundClass::typeid ); if ( myType->IsContextful ) { Console::WriteLine( "{0} can be hosted in a context.", MyContextBoundClass::typeid ); } else { Console::WriteLine( "{0} cannot be hosted in a context.", MyContextBoundClass::typeid ); } myType = gcnew MyTypeDelegatorClass( MyTypeDemoClass::typeid ); Console::WriteLine( "\nCheck whether MyTypeDemoClass can be hosted in a context." ); if ( myType->IsContextful ) { Console::WriteLine( "{0} can be hosted in a context.", MyTypeDemoClass::typeid ); } else { Console::WriteLine( "{0} cannot be hosted in a context.", MyTypeDemoClass::typeid ); } } catch ( Exception^ e ) { Console::WriteLine( "Exception: {0}", e->Message ); } }
Version Information
.NET Framework
Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Supported in: 4, 3.5 SP1Platforms
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
See Also