45 lines
1.3 KiB
C#
45 lines
1.3 KiB
C#
using System;
|
|
using System.Reflection;
|
|
|
|
namespace Swan.Reflection
|
|
{
|
|
/// <summary>
|
|
/// Represents a generic interface to store getters and setters for high speed access to properties.
|
|
/// </summary>
|
|
public interface IPropertyProxy
|
|
{
|
|
/// <summary>
|
|
/// Gets the name of the property.
|
|
/// </summary>
|
|
string Name { get; }
|
|
|
|
/// <summary>
|
|
/// Gets the type of the property.
|
|
/// </summary>
|
|
Type PropertyType { get; }
|
|
|
|
/// <summary>
|
|
/// Gets the associated reflection property info.
|
|
/// </summary>
|
|
PropertyInfo Property { get; }
|
|
|
|
/// <summary>
|
|
/// Gets the type owning this property proxy.
|
|
/// </summary>
|
|
Type EnclosingType { get; }
|
|
|
|
/// <summary>
|
|
/// Gets the property value via a stored delegate.
|
|
/// </summary>
|
|
/// <param name="instance">The instance.</param>
|
|
/// <returns>The property value.</returns>
|
|
object? GetValue(object instance);
|
|
|
|
/// <summary>
|
|
/// Sets the property value via a stored delegate.
|
|
/// </summary>
|
|
/// <param name="instance">The instance.</param>
|
|
/// <param name="value">The value.</param>
|
|
void SetValue(object instance, object? value);
|
|
}
|
|
} |