UrlAttribute 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
활성화를 수행할 URL을 지정하기 위해 호출 사이트에서 사용할 수 있는 특성을 정의합니다. 이 클래스는 상속될 수 없습니다.
public ref class UrlAttribute sealed : System::Runtime::Remoting::Contexts::ContextAttribute
[System.Serializable]
public sealed class UrlAttribute : System.Runtime.Remoting.Contexts.ContextAttribute
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class UrlAttribute : System.Runtime.Remoting.Contexts.ContextAttribute
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public sealed class UrlAttribute : System.Runtime.Remoting.Contexts.ContextAttribute
[<System.Serializable>]
type UrlAttribute = class
inherit ContextAttribute
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type UrlAttribute = class
inherit ContextAttribute
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Security.SecurityCritical>]
type UrlAttribute = class
inherit ContextAttribute
Public NotInheritable Class UrlAttribute
Inherits ContextAttribute
- 상속
- 특성
예제
다음 코드 예제에서는 UrlAttribute 원격 클라이언트가 정품 인증을 설정 합니다. 세 부분이 있습니다. 예: 클라이언트, 서버 및 클라이언트와 서버에서 사용 되는 원격 개체입니다.
다음 코드 예제에서는 클라이언트를 보여 줍니다.
#using <System.Runtime.Remoting.dll>
#using <System.dll>
#using "RemoteObject.dll"
using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Activation;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Tcp;
[STAThread]
int main()
{
// Report initial status.
Console::WriteLine( "Client starting." );
// Register TCP channel.
ChannelServices::RegisterChannel( gcnew TcpChannel );
// Create UrlAttribute.
UrlAttribute^ attribute = gcnew UrlAttribute( "tcp://localhost:1234/RemoteApp" );
Console::WriteLine( "UrlAttribute value: {0}", attribute->UrlValue );
array<Object^>^activationAttributes = {attribute};
// Use UrlAttribute to register for client activated remote object.
RemotingConfiguration::RegisterActivatedClientType( RemoteObject::typeid, "tcp://localhost:1234/RemoteApp" );
// Activate remote object.
Console::WriteLine( "Activating remote object." );
RemoteObject ^ obj = dynamic_cast<RemoteObject^>(Activator::CreateInstance( RemoteObject::typeid, nullptr, activationAttributes ));
// Invoke a method on it.
Console::WriteLine( "Invoking Hello() on remote object." );
obj->Hello();
// Inform user of termination.
Console::WriteLine( "Terminating client." );
}
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.");
}
}
다음 코드 예제에서는이 클라이언트에 대 한 서버를 보여 줍니다.
#using <System.Runtime.Remoting.dll>
#using <System.dll>
#using "RemoteObject.dll"
using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Tcp;
[STAThread]
int main()
{
// Report status to user.
Console::WriteLine( "Server starting." );
// Register the TCP channel.
ChannelServices::RegisterChannel( gcnew TcpChannel( 1234 ) );
// Set application name.
RemotingConfiguration::ApplicationName = "RemoteApp";
// Register object for client activated remoting.
RemotingConfiguration::RegisterActivatedServiceType( RemoteObject::typeid );
// Wait until termination.
Console::WriteLine( "Press enter to end." );
Console::ReadLine();
Console::WriteLine( "Terminating server." );
}
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.");
}
}
다음 코드 예제에서는 클라이언트와 서버에서 사용 되는 원격 개체를 보여 줍니다.
using namespace System;
using namespace System::Security;
using namespace System::Security::Permissions;
[assembly:AllowPartiallyTrustedCallersAttribute];
public ref class RemoteObject: public MarshalByRefObject
{
public:
RemoteObject()
{
// Report object construction to server's console.
Console::WriteLine( "You have called the constructor." );
}
void Hello()
{
// Report method invocation to server's console.
Console::WriteLine( "You have called Hello()." );
}
};
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().");
}
}
설명
합니다 UrlAttribute 에 대 한 매개 변수로 활성화 특성 배열이 전달 됩니다 Activator.CreateInstance 활성화 개체를 만들 때의 CreateInstance 메서드.
특성을 사용 하는 방법에 대 한 자세한 내용은 참조 하세요. 특성합니다.
생성자
UrlAttribute(String) |
UrlAttribute 클래스의 새 인스턴스를 만듭니다. |
필드
AttributeName |
이 API는 제품 인프라를 지원하며 코드에서 직접 사용되지 않습니다. 컨텍스트 특성의 이름을 나타냅니다. (다음에서 상속됨 ContextAttribute) |
속성
Name |
이 API는 제품 인프라를 지원하며 코드에서 직접 사용되지 않습니다. 컨텍스트 특성의 이름을 가져옵니다. (다음에서 상속됨 ContextAttribute) |
TypeId |
파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다. (다음에서 상속됨 Attribute) |
UrlValue |
UrlAttribute의 URL 값을 가져옵니다. |
메서드
Equals(Object) |
지정된 개체가 현재 인스턴스로서 동일한 URL을 참조하는지 여부를 확인합니다. |
Freeze(Context) |
이 API는 제품 인프라를 지원하며 코드에서 직접 사용되지 않습니다. 컨텍스트가 고정될 때 호출됩니다. (다음에서 상속됨 ContextAttribute) |
GetHashCode() |
현재 UrlAttribute에 대한 해시 값을 반환합니다. |
GetPropertiesForNewContext(IConstructionCallMessage) |
컨텍스트와 서버 개체를 지정된 URL의 컨텍스트 내에만 만들도록 설정합니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
IsContextOK(Context, IConstructionCallMessage) |
지정된 Context가 UrlAttribute의 요구 사항을 충족시키는지 여부를 나타내는 부울 값을 반환합니다. |
IsDefaultAttribute() |
파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다. (다음에서 상속됨 Attribute) |
IsNewContextOK(Context) |
이 API는 제품 인프라를 지원하며 코드에서 직접 사용되지 않습니다. 컨텍스트 속성이 새 컨텍스트와 호환되는지 여부를 나타내는 부울 값을 반환합니다. (다음에서 상속됨 ContextAttribute) |
Match(Object) |
파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Attribute) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다. (다음에서 상속됨 Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다. (다음에서 상속됨 Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1). (다음에서 상속됨 Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다. (다음에서 상속됨 Attribute) |