📄 perstsink.cs
字号:
using System;
using System.Reflection;
using System.Runtime.Remoting.Messaging;
namespace Perst.Impl
{
public class PerstSink : IMessageSink
{
internal PerstSink(PersistentContext target, IMessageSink next)
{
this.next = next;
this.target = target;
}
public IMessageSink NextSink
{
get
{
return next;
}
}
public IMessage SyncProcessMessage(IMessage call)
{
IMethodMessage invocation = (IMethodMessage)call;
if (invocation.TypeName != "Perst.PersistentContext")
{
target.Load();
if (invocation.MethodName == "FieldSetter")
{
target.Modify();
}
}
return NextSink.SyncProcessMessage(call);
}
public IMessageCtrl AsyncProcessMessage(IMessage call, IMessageSink destination)
{
return NextSink.AsyncProcessMessage(call, destination);
}
private IMessageSink next;
private PersistentContext target;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -