IdeaBlade.EntityModel Assembly > IdeaBlade.EntityModel Namespace > EntityManager Class > InvokeServerMethod Method : InvokeServerMethod(InvokeServerMethodArgs) Method |
'Declaration
Public Overloads Function InvokeServerMethod( _ ByVal args As InvokeServerMethodArgs _ ) As Object
'Usage
Dim instance As EntityManager Dim args As InvokeServerMethodArgs Dim value As Object value = instance.InvokeServerMethod(args)
public object InvokeServerMethod( InvokeServerMethodArgs args )
Exception | Description |
---|---|
System.ArgumentException | Type name must be an assembly qualified type name. |
System.Security.SecurityException | Thrown if the method is not marked with the AllowRpcAttribute |
PersistenceSecurityException | Thrown if the server method is decorated with an AuthorizationAttribute and the user is not authorized to execute the method. |
InvokeServerMethod enables a client-side caller to invoke an arbitrary static method on the server. The method can return any kind of serializable object.
This feature is only available in certain editions of DevForce.// Sample showing invocation of server method EntityManager mgr = new DomainModelEntityManager(); int orderId = 10250; bool mailSent = (bool) mgr.InvokeServerMethod(Order.EmailOrderInfo, orderId); // sample method defined in Order class public class Order { //... // ServerMethodDelegate method, called from client [AllowRpc] public static Object EmailOrderInfo(IPrincipal pPrincipal, EntityManager pPm, params Object[] pArgs) { int orderId = Convert.ToInt32(pArgs[0]); // build and send an email message string from = "sales@mycompany.com"; string to = "customer@yourcompany.com"; System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(from, to); msg.Subject = "Order Information"; msg.Body = string.Format("Order id = {0} has been shipped", orderId); System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient("localhost"); try { mailClient.Send(msg); } catch (Exception e) { TraceFns.WriteLine(e.Message); return false; } return true; } }
' Sample showing invocation of server method Dim mgr As EntityManager As New DomainModelEntityManager() Dim orderId As Integer = 10250 Dim mailSent As Boolean = CBool(mgr.InvokeServerMethod(Order.EmailOrderInfo, orderId)) ' sample method defined in Order class Public Class Order '... Public Shared<AllowRpc()> _ Function EmailOrderInfo(pPrincipal As IPrincipal, pManager As EntityManager, ParamArray pArgs() As [Object]) As [Object] Dim orderId As Integer = Convert.ToInt32(pArgs(0)) ' build and send an email message Dim from As String = "sales@mycompany.com" Dim [to] As String = "customer@yourcompany.com" Dim msg As New System.Net.Mail.MailMessage(from, [to]) msg.Subject = "Order Information" msg.Body = String.Format("Order id = {0} has been shipped", orderId) Dim client As New System.Net.Mail.SmtpClient("localhost") Try client.Send(msg) Catch e As Exception TraceFns.WriteLine(e.Message) Return False End Try Return True End Function End Class
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2