Type.IsContextfulImpl 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
IsContextful 속성을 구현하고, Type이 컨텍스트에서 호스팅될 수 있는지 여부를 확인합니다.
protected:
virtual bool IsContextfulImpl();
protected virtual bool IsContextfulImpl ();
abstract member IsContextfulImpl : unit -> bool
override this.IsContextfulImpl : unit -> bool
Protected Overridable Function IsContextfulImpl () As Boolean
반환
Type이 컨텍스트에서 호스팅될 수 있으면 true
이고, 그렇지 않으면 false
입니다.
예제
다음 예제를 사용 하는 방법을 보여 줍니다는 IsContextfulImpl
메서드.
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 );
}
}
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.";
}
Imports System.Reflection
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
' 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
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
End Class
' 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
설명
이 메서드는 파생 클래스에서 재정의할 수 있습니다.
컨텍스트는 클래스 멤버에 대한 호출을 가로채고 동기화와 같이 클래스에 적용되는 정책을 적용합니다.