using System; using System.Collections.Generic; using System.Text; namespace Esiur.Net.IIP; public interface IPropertyContext { object GetValue(DistributedConnection connection); } public class PropertyContext : IPropertyContext { public T Value { get; private set; } public DistributedConnection Connection { get; private set; } public Func Method { get; private set; } public PropertyContext(DistributedConnection connection, T value) { this.Value = value; this.Connection = connection; } public PropertyContext(Func method) { this.Method = method; } public static implicit operator PropertyContext(Func method) => new PropertyContext(method); public object GetValue(DistributedConnection connection) { return Method.Invoke(connection); } }