blob: 10710819c818cefc5d814f081f162bb7800e63ea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
namespace AdvancedInspector
{
/// <summary>
/// Define an attribute that stores a method name
/// Which should be turned into a delegate at runtime.
/// </summary>
public interface IRuntimeAttribute<T> : IRuntimeAttribute
{
/// <summary>
/// Invoke the internal delegates and returns the requested values.
/// T should be the same type as the Delegate return type.
/// </summary>
T Invoke(int index, object instance, object value);
}
public interface IRuntimeAttribute
{
/// <summary>
/// Name of the MethodInfo to retrieve at runtime.
/// </summary>
string MethodName { get; }
/// <summary>
/// Prototype template of the delegate to create
/// </summary>
Type Template { get; }
/// <summary>
/// Prototype template for static external delegate
/// </summary>
Type TemplateStatic { get; }
/// <summary>
/// List of delegates to invoke.
/// </summary>
List<Delegate> Delegates { get; set; }
}
}
|