using System; using System.Reflection; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using System.Diagnostics; using Barotrauma; namespace QIDependencyInjection { /// /// Properties marked with [Dependency] will be injected, /// and their own properties will be injected /// public class DependencyAttribute : System.Attribute { } /// /// Properties marked with [EntryPoint] will be created if == null /// and then their own properties will be injected /// public class EntryPointAttribute : System.Attribute { } /// /// Properties marked with [Singleton] will be created, added to Singletons and injected /// public class SingletonAttribute : System.Attribute { } /// /// it's a stupid optimization attempt /// Classes marked with [HasStaticDependencies] will be scanned in InjectStaticProperties(Assembly assembly, bool onlyIfHasStaticDependencies = true) /// public class HasStaticDependenciesAttribute : System.Attribute { } /// /// Classes marked with [DontInjectStatic] won't be injected by InjectStaticProperties(Assembly assembly, bool onlyIfHasStaticDependencies = true) /// For test classes /// public class DontInjectStaticAttribute : System.Attribute { } }