RequireImplementorsAttribute
When the interface type is marked, all types implementing that interface will be marked.
Read time 3 minutesLast updated 4 days ago
Definition
- Type: Class
- Namespace: UnityEngine.Scripting
- Assembly: Unity.Scripting
- Inherits from: Attribute
[AttributeUsage(AttributeTargets.Interface, AllowMultiple = false)]public class RequireImplementorsAttribute : Attribute
Examples
using System;using UnityEngine;using UnityEngine.Scripting;public class NewBehaviourScript : MonoBehaviour{ void Start() { IFoo ifoo = new Foo(); }}[RequireImplementors]interface IFoo {}class Foo : IFoo {}// UnusedFoo is not used, however, it will survive managed code stripping due to IFoo having the [RequireImplementors] attribute.class UnusedFoo : IFoo{ // Note that unused members of UnusedFoo will still be removed by managed code stripping public static void UnusedMethod() {}}// IBar is not used so it will be removed by managed code stripping[RequireImplementors]interface IBar {}// Because IBar is not used, the [RequireImplementors] attribute on IBar has no impact. UnusedBar will also be removed.class UnusedBar : IBar {}