Поделиться через


Type.IsMarshalByRef Свойство

Определение

Возвращает значение, указывающее, маршалирован ли объект Type по ссылке.

public:
 property bool IsMarshalByRef { bool get(); };
public bool IsMarshalByRef { get; }
member this.IsMarshalByRef : bool
Public ReadOnly Property IsMarshalByRef As Boolean

Значение свойства

Значение true, если объект Type маршалируется по ссылке; в противном случае — значение false.

Реализации

Примеры

В следующем примере показаны IsContextfulсвойства Type , IsMarshalByRefи IsPrimitive класса . Он проверяет, может ли данный тип размещаться в контексте, можно ли маршалировать его по ссылке и является ли тип примитивным типом данных.

using namespace System;
using namespace System::Runtime::Remoting::Contexts;

public ref class ContextBoundClass: public ContextBoundObject
{
   public:
      String^ Value;
};

public ref class Example
{
public:
   void Demo()
   {
      // Determine whether the types can be hosted in a Context.
      Console::WriteLine("The IsContextful property for the {0} type is {1}.",
                         Example::typeid->Name, Example::typeid->IsContextful);
      Console::WriteLine("The IsContextful property for the {0} type is {1}.",
                         ContextBoundClass::typeid->Name, ContextBoundClass::typeid->IsContextful);
      
      // Determine whether the types are marshalled by reference.
      Console::WriteLine("The IsMarshalByRef property of {0} is {1}.",
                         Example::typeid->Name, Example::typeid->IsMarshalByRef );
      Console::WriteLine("The IsMarshalByRef property of {0} is {1}.",
                         ContextBoundClass::typeid->Name, ContextBoundClass::typeid->IsMarshalByRef );
      
      // Determine whether the types are primitive datatypes.
      Console::WriteLine("{0} is a primitive data type: {1}.",
                         int::typeid->Name, int::typeid->IsPrimitive );
      Console::WriteLine("{0} is a primitive data type: {1}.",
                         String::typeid->Name, String::typeid->IsPrimitive );
   }
};

int main()
{
   Example^ ex = gcnew Example;
   ex->Demo();
}
// The example displays the following output:
//    The IsContextful property for the Example type is False.
//    The IsContextful property for the ContextBoundClass type is True.
//    The IsMarshalByRef property of Example is False.
//    The IsMarshalByRef property of ContextBoundClass is True.
//    Int32 is a primitive data type: True.
//    String is a primitive data type: False.
using System;
using System.Runtime.Remoting.Contexts;

public class ContextBoundClass: ContextBoundObject
{
    public string Value = "The Value property.";
}

public class Example
{
    public static void Main()
    {
         // Determine whether the types can be hosted in a Context.
         Console.WriteLine("The IsContextful property for the {0} type is {1}.",
                           typeof(Example).Name, typeof(Example).IsContextful);
         Console.WriteLine("The IsContextful property for the {0} type is {1}.",
                           typeof(ContextBoundClass).Name, typeof(ContextBoundClass).IsContextful);

         // Determine whether the types are marshalled by reference.
         Console.WriteLine("The IsMarshalByRef property of {0} is {1}.",
                           typeof(Example).Name, typeof(Example).IsMarshalByRef);
         Console.WriteLine("The IsMarshalByRef property of {0} is {1}.",
                           typeof(ContextBoundClass).Name, typeof(ContextBoundClass).IsMarshalByRef);

         // Determine whether the types are primitive datatypes.
         Console.WriteLine("{0} is a primitive data type: {1}.",
                           typeof(int).Name, typeof(int).IsPrimitive);
         Console.WriteLine("{0} is a primitive data type: {1}.",
                           typeof(string).Name, typeof(string).IsPrimitive);
    }
}
// The example displays the following output:
//    The IsContextful property for the Example type is False.
//    The IsContextful property for the ContextBoundClass type is True.
//    The IsMarshalByRef property of Example is False.
//    The IsMarshalByRef property of ContextBoundClass is True.
//    Int32 is a primitive data type: True.
//    String is a primitive data type: False.
open System

type ContextBoundClass() as this =
    inherit ContextBoundObject()
    [<DefaultValue>]
    val mutable public Value : string 
    do 
        this.Value <- "The Value property."

type Example() = class end

// Determine whether the types can be hosted in a Context.
printfn $"The IsContextful property for the {typeof<Example>.Name} type is {typeof<Example>.IsContextful}."
printfn $"The IsContextful property for the {typeof<ContextBoundClass>.Name} type is {typeof<ContextBoundClass>.IsContextful}."

// Determine whether the types are marshalled by reference.
printfn $"The IsMarshalByRef property of {typeof<Example>.Name} is {typeof<Example>.IsMarshalByRef}."
printfn $"The IsMarshalByRef property of {typeof<ContextBoundClass>.Name} is {typeof<ContextBoundClass>.IsMarshalByRef}."

// Determine whether the types are primitive datatypes.
printfn $"{typeof<int>.Name} is a primitive data type: {typeof<int>.IsPrimitive}."
printfn $"{typeof<string>.Name} is a primitive data type: {typeof<string>.IsPrimitive}."
// The example displays the following output:
//    The IsContextful property for the Example type is False.
//    The IsContextful property for the ContextBoundClass type is True.
//    The IsMarshalByRef property of Example is False.
//    The IsMarshalByRef property of ContextBoundClass is True.
//    Int32 is a primitive data type: True.
//    String is a primitive data type: False.
Imports System.Runtime.Remoting.Contexts

Public Class ContextBoundClass : Inherits ContextBoundObject
    Public Value As String = "The Value property."
End Class

Public Class Example
    Public Shared Sub Main()
         ' Determine whether the types can be hosted in a Context.
         Console.WriteLine("The IsContextful property for the {0} type is {1}.",
                           GetType(Example).Name, GetType(Example).IsContextful)
         Console.WriteLine("The IsContextful property for the {0} type is {1}.",
                           GetType(ContextBoundClass).Name, GetType(ContextBoundClass).IsContextful)
         ' Determine whether the types are marshalled by reference.
         Console.WriteLine("The IsMarshalByRef property of {0} is {1}.",
                           GetType(Example).Name, GetType(Example).IsMarshalByRef)
         Console.WriteLine("The IsMarshalByRef property of {0} is {1}.",
                           GetType(ContextBoundClass).Name, GetType(ContextBoundClass).IsMarshalByRef)
         ' Determine whether the types are primitive datatypes.
         Console.WriteLine("{0} is a primitive data type: {1}.",
                           GetType(Integer).Name, GetType(Integer).IsPrimitive)
         Console.WriteLine("{0} is a primitive data type: {1}.",
                           GetType(String).Name, GetType(String).IsPrimitive)
    End Sub
End Class
' The example displays the following output:
'    The IsContextful property for the Example type is False.
'    The IsContextful property for the ContextBoundClass type is True.
'    The IsMarshalByRef property of Example is False.
'    The IsMarshalByRef property of ContextBoundClass is True.
'    Int32 is a primitive data type: True.
'    String is a primitive data type: False.

Применяется к

См. также раздел