InvokeOperation Class
[WCF RIA Services Version 1 Service Pack 2 is compatible with either .NET framework 4 or .NET Framework 4.5, and with either Silverlight 4 or Silverlight 5.]
Represents an asynchronous invoke operation.
Inheritance Hierarchy
System.Object
System.ServiceModel.DomainServices.Client.OperationBase
System.ServiceModel.DomainServices.Client.InvokeOperation
System.ServiceModel.DomainServices.Client.InvokeOperation<TValue>
Namespace: System.ServiceModel.DomainServices.Client
Assembly: System.ServiceModel.DomainServices.Client (in System.ServiceModel.DomainServices.Client.dll)
Syntax
'Declaration
Public Class InvokeOperation _
Inherits OperationBase
'Usage
Dim instance As InvokeOperation
public class InvokeOperation : OperationBase
public ref class InvokeOperation : public OperationBase
type InvokeOperation =
class
inherit OperationBase
end
public class InvokeOperation extends OperationBase
The InvokeOperation type exposes the following members.
Properties
Name | Description | |
---|---|---|
CanCancel | Gets a value that indicates whether this OperationBase is currently in a state that enables it to be canceled. (Inherited from OperationBase.) | |
Error | Gets the operation error if the operation failed. (Inherited from OperationBase.) | |
HasError | Gets a value that indicates whether the operation failed. (Inherited from OperationBase.) | |
IsCanceled | Gets a value that indicates whether this operation has been canceled. (Inherited from OperationBase.) | |
IsComplete | Gets a value that indicates whether this operation has completed. (Inherited from OperationBase.) | |
IsErrorHandled | Gets or sets a value that indicates whether the operation error has been handled. (Inherited from OperationBase.) | |
OperationName | Gets the name of the operation. | |
Parameters | Gets the collection of parameters to the operation. | |
Result | Gets the DomainClientResult for this operation. | |
SupportsCancellation | Gets a value indicating whether this operation supports cancellation. (Overrides OperationBase.SupportsCancellation.) | |
UserState | Gets the optional user state for this operation. (Inherited from OperationBase.) | |
ValidationErrors | Gets the validation errors for this operation. | |
Value | Gets the return value for the invoke operation. |
Top
Methods
Name | Description | |
---|---|---|
Cancel | Cancels the operation. (Inherited from OperationBase.) | |
CancelCore | Invokes the cancel callback. (Overrides OperationBase.CancelCore().) | |
Complete(Exception) | Completes a failed operation with the specified error. (Inherited from OperationBase.) | |
Complete(Object) | Completes a successful operation with the specified result. (Inherited from OperationBase.) | |
Equals | (Inherited from Object.) | |
Finalize | (Inherited from Object.) | |
GetHashCode | (Inherited from Object.) | |
GetType | (Inherited from Object.) | |
InvokeCompleteAction | Invokes the completion callback. (Overrides OperationBase.InvokeCompleteAction().) | |
MarkErrorAsHandled | Specifies that an error encountered in an operation is handled. (Inherited from OperationBase.) | |
MemberwiseClone | (Inherited from Object.) | |
OnPropertyChanged | Called when the value of a property changes. (Inherited from OperationBase.) | |
RaisePropertyChanged | Raises the System#ComponentModel#INotifyPropertyChanged#PropertyChanged() event. (Inherited from OperationBase.) | |
ToString | (Inherited from Object.) |
Top
Events
Name | Description | |
---|---|---|
Completed | Occurs when the operation completes. (Inherited from OperationBase.) |
Top
Explicit Interface Implementations
Name | Description | |
---|---|---|
INotifyPropertyChanged.PropertyChanged | Occurs when a property value changes. (Inherited from OperationBase.) |
Top
Examples
Partial Public Class MainPage
Inherits UserControl
' Create the DomainContext for the DomainService
Private _customerContext As CustomerDomainContext = New CustomerDomainContext()
Friend invokeOp As InvokeOperation = New InvokeOperation()
' In this example, the value of the invoke operations is supposed to be a string
Friend result As Integer
Dim opEx As DomainOperationException = New DomainOperationException()
Public Function MainPage()
InitializeComponent()
'Set invokeOp equal to _customerContext.CountCustomers
invokeOp = _customerContext.CountCustomers(OnInvokeCompleted, Nothing)
Dim query As EntityQuery(Of Customer) =
From c In _customerContext.GetCustomersQuery
Where c.Phone.StartsWith("583")
Order By c.LastName
Select c
Dim loadOp As LoadOperation(Of Customer) = this._customerContext.Load(query, LoadBehavior.MergeIntoCurrent, False)
opEx = New DomainOperationException("Validation Error",
OperationErrorStatus.ValidationFailed,
326)
If loadOp.ValidationErrors <> Nothing Then
Throw opEx
End If
Dim qr As QueryResult(Of Customer) = New QueryResult(Of Customer)()
CustomerGrid.ItemsSource = qr.IncludedResults
End Function
'Create a method for handling the InvokeOperations onCompleted.
Private Function OnInvokeCompleted(ByVal invOp As InvokeOperation)
If invOp.HasError = True Then
If invOp.ValidationErrors <> Nothing Then
Throw opEx
Else
MessageBox.Show(String.Format("An Error Occured" + vbCrLf + _
"Error Message: {0}" + vbCrLf + _
"InnerException: {1}", invOp.Message, invOp.InnerException.Message))
invOp.MarkErrorAsHandled()
End If
Else
result = invokeOp.Value
End If
End Function
End Class
public partial class MainPage : UserControl
{
// Create the DomainContext for the DomainService
private CustomerDomainContext _customerContext = new CustomerDomainContext();
InvokeOperation invokeOp = new InvokeOperation();
string result;
DomainOperationException opEx = new DomainOperationException();
public MainPage()
{
InitializeComponent();
// Set invokeOp equal to _customerContext.CountCustomers
invokeOp = _customerContext.CountCustomers(OnInvokeCompleted, null);
EntityQuery<Customer> query =
from c in _customerContext.GetCustomersQuery()
where c.Phone.StartsWith("583")
orderby c.LastName
select c;
LoadOperation<Customer> loadOp = this._customerContext.Load(query, LoadBehavior.MergeIntoCurrent, false);
opEx = new DomainOperationException(
"Validation Error",
OperationErrorStatus.ValidationFailed,
0x000024FA);
if (loadOp.ValidationErrors != null)
{
throw opEx;
}
QueryResult<Customer> qr = new QueryResult<Customer>();
CustomerGrid.ItemsSource = qr.IncludedResults;
}
// Create a method for Handling the InvokeOperation Completed.
private void OnInvokeCompleted(InvokeOperation invOp)
{
if (invOp.HasError)
{
if (invOp.ValidationErrors != null)
{
throw opEx;
}
else
{
MessageBox.Show(string.Format("An Error Occured/nError Message: {0}/nInner Exception Message: {1}",
invOp.Error.Message,
invOp.Error.InnerException.Message));
invOp.MarkErrorAsHandled();
}
}
else
{
// Convert the value of invokeOp which is an integer to a string for output
// in the result field.
result = invokeOp.Value.ToString();
MessageBox(string.Format("InvokeOperation '{0}' has completed", invokeOp.OperationName);
}
}
}
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.