Auf Englisch lesen

Freigeben über


UrlAttribute Klasse

Definition

Definiert ein Attribut, das in der aufrufenden Site zur Angabe der URL verwendet werden kann, an der die Aktivierung stattfindet. Diese Klasse kann nicht vererbt werden.

C#
[System.Serializable]
public sealed class UrlAttribute : System.Runtime.Remoting.Contexts.ContextAttribute
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class UrlAttribute : System.Runtime.Remoting.Contexts.ContextAttribute
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public sealed class UrlAttribute : System.Runtime.Remoting.Contexts.ContextAttribute
Vererbung
Attribute

Beispiele

Im folgenden Codebeispiel wird die Verwendung der UrlAttribute clientaktivierten Remoting veranschaulicht. Das Beispiel enthält drei Teile: einen Client, einen Server und ein Remoteobjekt, das vom Client und Server verwendet wird.

Das folgende Codebeispiel zeigt einen Client:

C#
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Activation;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

public class Client
{
    [STAThread]
    public static void Main()
    {
        // Report the initial status.
        Console.WriteLine("Starting client.");

        // Register the TCP channel.
        ChannelServices.RegisterChannel(new TcpChannel());

        // Create a url attribute object.
        UrlAttribute attribute =
            new UrlAttribute("tcp://localhost:1234/RemoteApp");
        Console.WriteLine("UrlAttribute value: {0}", attribute.UrlValue);
        object[] activationAttributes = new object[] { attribute };

        // Register the client for the remote object.
        RemotingConfiguration.RegisterActivatedClientType(
            typeof(RemoteObject),
            "tcp://localhost:1234/RemoteApp");

        // Activate the remote object.
        Console.WriteLine("Activating remote object.");
        RemoteObject obj = (RemoteObject) Activator.CreateInstance(
            typeof(RemoteObject), null, activationAttributes);

        // Invoke a method on the remote object.
        Console.WriteLine("Invoking Hello() on remote object.");
        obj.Hello();

        // Inform the user that the program is exiting.
        Console.WriteLine("The client is exiting.");
    }
}

Das folgende Codebeispiel zeigt einen Server für diesen Client:

C#
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

public class Server
{
    [STAThread]
    public static void Main()
    {
        // Report the status to the user.
        Console.WriteLine("Starting server.");

        // Register the TCP channel.
        ChannelServices.RegisterChannel(new TcpChannel(1234));

        // Set the application name.
        RemotingConfiguration.ApplicationName = "RemoteApp";

        // Register the object for remoting.
        RemotingConfiguration.RegisterActivatedServiceType(
            typeof(RemoteObject));

        // Wait until the user presses ENTER.
        Console.WriteLine("Press ENTER to exit.");
        Console.ReadLine();
        Console.WriteLine("The server is exiting.");
    }
}

Das folgende Codebeispiel zeigt das Remoteobjekt, das vom Client und dem Server verwendet wird:

C#
using System;
using System.Security;
using System.Security.Permissions;

public class RemoteObject : MarshalByRefObject
{
    public RemoteObject()
    {
        Console.WriteLine("You have called the constructor.");
    }

    public void Hello()
    {
        Console.WriteLine("You have called Hello().");
    }
}

Hinweise

Die UrlAttribute wird im Aktivierungsattributearray als Parameter übergeben, um aktivierte Objekte mit der CreateInstance Methode zu Activator.CreateInstance erstellen.

Weitere Informationen zur Verwendung von Attributen finden Sie unter Attribute.

Konstruktoren

UrlAttribute(String)

Erstellt eine neue Instanz der UrlAttribute-Klasse.

Felder

AttributeName

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt den Namen des Kontextattributs an.

(Geerbt von ContextAttribute)

Eigenschaften

Name

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Ruft den Namen des Kontextattributs ab.

(Geerbt von ContextAttribute)
TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.

(Geerbt von Attribute)
UrlValue

Ruft den URL-Wert von UrlAttribute ab.

Methoden

Equals(Object)

Überprüft, ob das angegebene Objekt auf dieselbe URL wie die aktuelle Instanz verweist.

Freeze(Context)

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Wird aufgerufen, wenn der Kontext eingefroren ist.

(Geerbt von ContextAttribute)
GetHashCode()

Gibt den Hashwert für das aktuelle UrlAttribute zurück.

GetPropertiesForNewContext(IConstructionCallMessage)

Erzwingt die Erstellung des Kontexts und des Serverobjekts innerhalb des Kontexts an der angegebenen URL.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsContextOK(Context, IConstructionCallMessage)

Gibt einen booleschen Wert zurück, der angibt, ob der angegebene Context die Anforderungen von UrlAttribute erfüllt.

IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
IsNewContextOK(Context)

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt einen booleschen Wert zurück, der angibt, ob die Kontexteigenschaft mit dem neuen Kontext kompatibel ist.

(Geerbt von ContextAttribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.

(Geerbt von Attribute)

Gilt für

Produkt Versionen
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8

Siehe auch