Files
Stationeers-RemoteControl/Vendor/Swan.Lite-3.1.0/Reflection/IPropertyProxy.cs

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);
}
}