An open API service indexing awesome lists of open source software.

https://github.com/lostmsu/taskremoting

Wraps cross-domain asynchronous method calls, returing System.Threading.Tasks.Task.
https://github.com/lostmsu/taskremoting

Last synced: over 1 year ago
JSON representation

Wraps cross-domain asynchronous method calls, returing System.Threading.Tasks.Task.

Awesome Lists containing this project

README

          

# TaskRemoting

Package can be installed from NuGet: https://www.nuget.org/packages/TaskRemoting/ (TaskRemoting)

# Usage sample

```csharp
using TaskRemoting;

await remoteDomain.Invoke(myObj.MyMethod, myArg);
```

# Partial trust

RemoteTask.Invoke by itself demands unrestricted ReflectionPermission

If you want to call a method in a partial trust domain (sandbox), TaskRemoting must be fully trusted in that domain.

```csharp
public static StrongName GetStrongName(Assembly assembly)
{
var assemblyInfo = assembly.GetName();
var publicKey = new StrongNamePublicKeyBlob(assemblyInfo.GetPublicKey());
return new StrongName(publicKey, assemblyInfo.Name, assemblyInfo.Version);
}

var taskRemotingStrongName = GetStrongName(typeof(RemoteTask).Assembly);
AppDomain.CreateDomain("Sandbox", null, domainSetup, permissions, fullTrustAssemblies: taskRemotingStrongName);
```