iFactory.Cutting.Unity/Assets/BITKit/Core/Attributes/IBITCommand.cs

62 lines
1.7 KiB
C#

using System;
namespace BITKit
{
[AttributeUsage(AttributeTargets.Method)]
public class BITCommandAttribute : Attribute { }
/// <summary>
/// 自动注入依赖
/// </summary>
[AttributeUsage(AttributeTargets.Field)]
public class InjectAttribute : System.Attribute
{
public readonly bool CanBeNull;
public InjectAttribute()
{
}
public InjectAttribute(bool canBeNull)
{
CanBeNull = canBeNull;
}
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface, AllowMultiple = true, Inherited = true)]
public class CustomTypeAttribute : System.Attribute
{
public readonly Type Type;
public readonly bool AsGlobal;
public CustomTypeAttribute(Type type)
{
Type = type;
}
public CustomTypeAttribute(Type type, bool asGlobal)
{
Type = type;
AsGlobal = asGlobal;
}
public CustomTypeAttribute(bool asGlobal)
{
AsGlobal = asGlobal;
}
}
#if Godot
#else
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Field | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
public class ExportAttribute : System.Attribute
{
public readonly string Name;
public readonly IExportSetting Settings;
public ExportAttribute(){}
public ExportAttribute(IExportSetting settings)
{
Settings = settings;
}
public ExportAttribute(string name)
{
Name = name;
}
}
public interface IExportSetting{}
#endif
}