RemotingServices.IsOneWay(MethodBase) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengembalikan nilai Boolean yang menunjukkan apakah klien yang memanggil metode yang ditentukan dalam pesan yang diberikan menunggu server selesai memproses metode sebelum melanjutkan eksekusi.
public:
static bool IsOneWay(System::Reflection::MethodBase ^ method);
public static bool IsOneWay (System.Reflection.MethodBase method);
[System.Security.SecurityCritical]
public static bool IsOneWay (System.Reflection.MethodBase method);
static member IsOneWay : System.Reflection.MethodBase -> bool
[<System.Security.SecurityCritical>]
static member IsOneWay : System.Reflection.MethodBase -> bool
Public Shared Function IsOneWay (method As MethodBase) As Boolean
Parameter
- method
- MethodBase
Metode yang dimaksud.
Mengembalikan
true
jika metode adalah salah satu cara; jika tidak, false
.
- Atribut
Pengecualian
Pemanggil langsung tidak memiliki izin infrastruktur.
Contoh
public ref class HelloServer: public MarshalByRefObject
{
public:
HelloServer()
{
Console::WriteLine( "HelloServer activated." );
}
[OneWay]
void SayHelloToServer( String^ name )
{
Console::WriteLine( "Client invoked SayHelloToServer(\" {0}\").", name );
}
// IsOneWay: Note the lack of the OneWayAttribute adornment on this method.
[SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::Infrastructure)]
String^ SayHelloToServerAndWait( String^ name )
{
Console::WriteLine( "Client invoked SayHelloToServerAndWait(\" {0}\").", name );
Console::WriteLine( "Client waiting for return? {0}", RemotingServices::IsOneWay( MethodBase::GetCurrentMethod() ) ? (String^)"No" : "Yes" );
return String::Format( "Hi there, {0}.", name );
}
};
public class HelloServer : MarshalByRefObject {
public HelloServer() {
Console.WriteLine("HelloServer activated.");
}
[OneWay()]
public void SayHelloToServer(string name) {
Console.WriteLine("Client invoked SayHelloToServer(\"{0}\").", name);
}
// IsOneWay
// Note the lack of the OneWayAttribute adornment on this method.
public string SayHelloToServerAndWait(string name) {
Console.WriteLine("Client invoked SayHelloToServerAndWait(\"{0}\").", name);
Console.WriteLine(
"Client waiting for return? {0}",
RemotingServices.IsOneWay(MethodBase.GetCurrentMethod()) ? "No" : "Yes"
);
return "Hi there, " + name + ".";
}
}
Public Class HelloServer
Inherits MarshalByRefObject
Shared Sub New()
Console.WriteLine("HelloServer activated.")
End Sub
<OneWay()> Public Sub SayHelloToServer(ByVal name As String)
Console.WriteLine("Client invoked SayHelloToServer(""{0}"").", name)
End Sub
'IsOneWay
' Note the lack of the OneWayAttribute adornment on this method.
<SecurityPermission(SecurityAction.Demand)> _
Public Function SayHelloToServerAndWait(ByVal name As String) As String
Console.WriteLine("Client invoked SayHelloToServerAndWait(""{0}"").", name)
Console.WriteLine( _
"Client waiting for return? {0}", _
IIf(RemotingServices.IsOneWay(MethodBase.GetCurrentMethod()), "No", "Yes") _
)
Return "Hi there, " + name + "."
End Function
End Class
Keterangan
Ketika metode satu arah dipanggil, klien tidak menunggu server selesai memproses pesan. Metode klien kembali ke aplikasi tanpa pengetahuan apakah server akan berhasil memproses pesan atau tidak. Metode ditandai sebagai salah satu cara menggunakan OneWayAttribute.
Metode satu arah tidak dapat memiliki nilai pengembalian atau parameter keluar apa pun.