Bu makale, makine tarafından çevrilmiştir. Makaleyi İngilizce dilinde görüntülemek için İngilizce onay kutusunu işaretleyin. Ayrıca, fare işaretçisiyle İngilizce metnin üzerine gelerek metni açılır pencerede de görüntüleyebilirsiniz.
Çeviri
İngilizce

MarshalByRefObject Sınıfı

 

Dışarıdan erişimi destekleyen uygulamalarda, nesnelere uygulama alanı sınırları dışından da erişime olanak sağlar.

Ad alanı:   System
Derleme:  mscorlib (mscorlib.dll içinde)

System.Object
  System.MarshalByRefObject
    Microsoft.Build.Utilities.AppDomainIsolatedTask
    Microsoft.Build.Utilities.TaskItem
    Microsoft.Build.Utilities.TaskLoggingHelper
    Microsoft.Win32.RegistryKey
    System.AddIn.Pipeline.ContractBase
    System.AppDomain
    System.AppDomainManager
    System.ComponentModel.Component
    System.ContextBoundObject
    System.Data.Common.DataColumnMapping
    System.Data.Common.DataColumnMappingCollection
    System.Data.Common.DataTableMapping
    System.Data.Common.DataTableMappingCollection
    System.Data.Common.DbDataReader
    System.Data.Common.DbParameter
    System.Data.Common.DbParameterCollection
    System.Data.Common.DbTransaction
    System.Diagnostics.TraceListener
    System.DirectoryServices.SearchResultCollection
    System.Drawing.Brush
    System.Drawing.Drawing2D.CustomLineCap
    System.Drawing.Drawing2D.GraphicsContainer
    System.Drawing.Drawing2D.GraphicsPath
    System.Drawing.Drawing2D.GraphicsPathIterator
    System.Drawing.Drawing2D.GraphicsState
    System.Drawing.Drawing2D.Matrix
    System.Drawing.Font
    System.Drawing.FontFamily
    System.Drawing.Graphics
    System.Drawing.Icon
    System.Drawing.Image
    System.Drawing.Pen
    System.Drawing.Region
    System.Drawing.StringFormat
    System.EnterpriseServices.Internal.AssemblyLocator
    System.EnterpriseServices.RegistrationHelper
    System.IO.FileSystemInfo
    System.IO.IsolatedStorage.IsolatedStorage
    System.IO.Stream
    System.IO.TextReader
    System.IO.TextWriter
    System.Messaging.MessageEnumerator
    System.Messaging.MessageQueueEnumerator
    System.Net.WebRequest
    System.Net.WebResponse
    System.Reflection.AssemblyNameProxy
    System.Runtime.InteropServices.StandardOleMarshalObject
    System.Runtime.Remoting.Lifetime.ClientSponsor
    System.Runtime.Remoting.ObjectHandle
    System.Speech.Recognition.SrgsGrammar.SrgsElement
    System.Threading.RegisteredWaitHandle
    System.Threading.Timer
    System.Threading.WaitHandle
    System.Web.Compilation.ClientBuildManager
    System.Web.Compilation.ClientBuildManagerCallback
    System.Web.Hosting.AppDomainProtocolHandler
    System.Web.Hosting.ApplicationManager
    System.Web.Hosting.HostingEnvironment
    System.Web.Hosting.ISAPIRuntime
    System.Web.Hosting.ProcessHost
    System.Web.Hosting.ProcessHostFactoryHelper
    System.Web.Hosting.ProcessProtocolHandler
    System.Web.Hosting.RecycleLimitMonitor
    System.Web.Hosting.RecycleLimitMonitor.RecycleLimitMonitorSingleton
    System.Web.Hosting.VirtualFileBase
    System.Web.Hosting.VirtualPathProvider
    System.Windows.Forms.BaseCollection
    System.Windows.Forms.NativeWindow
    System.Windows.Forms.NumericUpDownAccelerationCollection
    System.Windows.Forms.OwnerDrawPropertyBag
    System.Windows.Forms.TreeNode
    System.Windows.Interop.DocObjHost
    System.Workflow.Runtime.DebugEngine.DebugController

[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class MarshalByRefObject

AdıAçıklama
System_CAPS_protmethodMarshalByRefObject()

Yeni bir örneğini başlatır MarshalByRefObject sınıfı.

AdıAçıklama
System_CAPS_pubmethodCreateObjRef(Type)

Uzak bir nesne ile iletişim kurmak için kullanılan bir proxy oluşturmak için gereken tüm bilgileri içeren bir nesne oluşturur.

System_CAPS_pubmethodEquals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Object kaynağından devralındı.)

System_CAPS_protmethodFinalize()

Atık toplama işlemi tarafından alınmadan önce nesnenin kaynaklarını boşaltmayı denemesine izin verir. (Object kaynağından devralındı.)

System_CAPS_pubmethodGetHashCode()

Varsayılan karma işlevi olarak görev yapar.(Object kaynağından devralındı.)

System_CAPS_pubmethodGetLifetimeService()

Bu örneğin ömrü ilkesi denetimleri geçerli ömrü hizmeti nesnesi alır.

System_CAPS_pubmethodGetType()

Alır Type geçerli örneği.(Object kaynağından devralındı.)

System_CAPS_pubmethodInitializeLifetimeService()

Bu örneğin ömrü ilkesi denetlemek için bir yaşam süresi hizmet nesnesi alır.

System_CAPS_protmethodMemberwiseClone()

Geçerli basit bir kopyasını oluşturur Object.(Object kaynağından devralındı.)

System_CAPS_protmethodMemberwiseClone(Boolean)

Geçerli basit bir kopyasını oluşturur MarshalByRefObject nesne.

System_CAPS_pubmethodToString()

Geçerli nesneyi temsil eden bir dize döndürür.(Object kaynağından devralındı.)

Uygulama etki alanı, bir işletim sistemi işlemindeki bir veya daha fazla uygulama bulunduğu bir bölümdür. Aynı uygulama etki alanındaki nesnelerin doğrudan iletişim kurar. Farklı uygulama etki alanlarında nesneleri ve nesnelerin kopyalarının uygulama etki alanı sınırlarında taşıma veya ileti alışverişinde bulunmak için bir proxy kullanarak iletişim kurar.

MarshalByRefObjectuygulama etki alanı sınırlarında ileti değiş tokuşu iletişim nesneleri için temel sınıfı, bir proxy kullanıyor. Öğesinden devralan olmayan nesneler MarshalByRefObject örtük olarak değerine göre sıralama şunlardır. Uzak uygulama değer nesnesi tarafından bir sıralama başvurduğunda nesne kopyasını uygulama etki alanı sınırlarında geçirilir.

MarshalByRefObjectnesneleri doğrudan yerel uygulama etki alanı sınırları içinde erişilir. Uygulama etki alanı bir uzaktan uygulama ilk kez eriştiğinde bir MarshalByRefObject, bir proxy uzak uygulamaya geçirilir. Proxy sonraki çağrılar geri yerel uygulama etki alanında bulunan nesne için hazırlanırlar.

Türleri öğesinden devralmalıdır MarshalByRefObject zaman türü uygulama etki alanı sınırlarında kullanılır ve nesnenin üyelerine oluşturuldukları uygulama etki alanı kullanılabilir olmadığından nesnenin durumunu kopyalanmayacak.

Türetilen ne zaman bir nesneden MarshalByRefObject uygulama etki alanı sınırları boyunca kullanmak için tüm üyeleri geçersiz kılmalısınız değil ya da yöntemlerinden doğrudan çağırmanız gerekir. Çalışma zamanı öğesinden türetilmiş sınıflar tanıdığı MarshalByRefObject uygulama etki alanı sınırlarında sıralanmalıdır.

Bu bölüm iki kod örneği içerir. İlk kod örneği başka bir uygulama etki alanı sınıfının bir örneği oluşturulacağını gösterir. İkinci kod örneğinde uzaktan iletişim için kullanılan basit bir sınıfı gösterir.

Örnek 1

Aşağıdaki kod örneği başka bir uygulama etki alanı kodu çalıştırmak için en basit yolu gösterir. Örnek adlı bir sınıf tanımlar Worker , devralınan MarshalByRefObject, bir yöntemiyle, yürütülmekte uygulama etki alanı adını görüntüler. Örnek örneklerini oluşturur Worker varsayılan uygulama etki alanını ve yeni bir uygulama etki alanı.

System_CAPS_noteNot

İçeren derlemenin Worker hem uygulama etki alanlarına yüklü olması gerekir, ancak yalnızca yeni uygulama etki alanında var diğer derlemelerini yüklemek.

using System;
using System.Reflection;

public class Worker : MarshalByRefObject
{
    public void PrintDomain() 
    { 
        Console.WriteLine("Object is executing in AppDomain \"{0}\"",
            AppDomain.CurrentDomain.FriendlyName); 
    }
}

class Example
{
    public static void Main()
    {
        // Create an ordinary instance in the current AppDomain
        Worker localWorker = new Worker();
        localWorker.PrintDomain();

        // Create a new application domain, create an instance
        // of Worker in the application domain, and execute code
        // there.
        AppDomain ad = AppDomain.CreateDomain("New domain");
        Worker remoteWorker = (Worker) ad.CreateInstanceAndUnwrap(
            typeof(Worker).Assembly.FullName,
            "Worker");
        remoteWorker.PrintDomain();
    }
}

/* This code produces output similar to the following:

Object is executing in AppDomain "source.exe"
Object is executing in AppDomain "New domain"
 */

Örnek 2

Aşağıdaki örnek, türetilmiş bir sınıf gösterir MarshalByRefObject diğer bir deyişle devamındaki kullanılan remoting.

using System;
using System.Runtime.Remoting;
using System.Security.Permissions;

public class SetObjectUriForMarshalTest  {

    class TestClass : MarshalByRefObject {
    }

    [SecurityPermission(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] 
    public static void Main()  {

        TestClass obj = new TestClass();    

        RemotingServices.SetObjectUriForMarshal(obj, "testUri");
        RemotingServices.Marshal(obj);

        Console.WriteLine(RemotingServices.GetObjectUri(obj));
    }
}

.NET Framework
1.1 sonrasında kullanılabilir

Bu türdeki herhangi bir public static (Visual Basic’te Paylaşılan Visual Basic'te), bu tür üyeler iş parçacığı güvenliklidir. Hiçbir örnek üyesinin, iş parçacığı güvenli olduğu garanti edilmez.

Başa dön
Show: