using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
namespace AdvancedInspector
{
///
/// Define an attribute that stores a method name
/// Which should be turned into a delegate at runtime.
///
public interface IRuntimeAttribute : IRuntimeAttribute
{
///
/// Invoke the internal delegates and returns the requested values.
/// T should be the same type as the Delegate return type.
///
T Invoke(int index, object instance, object value);
}
public interface IRuntimeAttribute
{
///
/// Name of the MethodInfo to retrieve at runtime.
///
string MethodName { get; }
///
/// Prototype template of the delegate to create
///
Type Template { get; }
///
/// Prototype template for static external delegate
///
Type TemplateStatic { get; }
///
/// List of delegates to invoke.
///
List Delegates { get; set; }
}
}