контекстный вызов работает и передача объектов по сети тоже

This commit is contained in:
2025-01-13 23:14:22 +03:00
parent 2f1a1e250b
commit 7cbdd57569
16 changed files with 177 additions and 59 deletions
+40
View File
@@ -9,12 +9,16 @@ public interface ITestController
Task AAsync(CancellationToken cancellationToken);
int B();
Task<int> BAsync(CancellationToken cancellationToken);
TransmittedSharedObject<ITestController> SharedObjectTransmitionTest();
}
[SharedObjectSingleton]
public class TestController : ITestController
{
public ITestController? ReturnIfNotNull;
private int _bOut = 5;
public void A()
{
Console.WriteLine("A called");
@@ -34,4 +38,40 @@ public class TestController : ITestController
{
return Task.FromResult(5);
}
public TransmittedSharedObject<ITestController> SharedObjectTransmitionTest()
{
return new TransmittionTestController { ReturnIfNotNull = ReturnIfNotNull ?? new TestController() };
}
}
public class TransmittionTestController : ITestController
{
public ITestController ReturnIfNotNull;
public void A()
{
Console.WriteLine("A called alternative");
}
public Task AAsync(CancellationToken cancellationToken)
{
Thread.Sleep(500);
return Task.CompletedTask;
}
public int B()
{
return 456789;
}
public Task<int> BAsync(CancellationToken cancellationToken)
{
return Task.FromResult(465789);
}
public TransmittedSharedObject<ITestController> SharedObjectTransmitionTest()
{
return new TestController { ReturnIfNotNull = this };
}
}