RemotingServices.IsOneWay(MethodBase) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí logickou hodnotu, která označuje, zda klient, který volal metodu zadanou v dané zprávě čeká na server dokončit zpracování metody před pokračováním v provádění.
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
Parametry
- method
- MethodBase
Dotčená metoda.
Návraty
true
pokud je metoda jednosměrná; v opačném případě . false
- Atributy
Výjimky
Okamžitý volající nemá oprávnění k infrastruktuře.
Příklady
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
Poznámky
Při zavolání jednosměrné metody klient nečeká na dokončení zpracování zprávy serverem. Metoda klienta se vrátí do aplikace bez vědomí, zda server úspěšně zpracuje zprávu. Metody jsou označeny jako jednosměrné OneWayAttributepomocí .
Jednosměrné metody nemohou mít návratovou hodnotu ani žádné parametry.