From dcccd5afa687fb3e001271e4a477d4416394f716 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Thu, 14 Mar 2024 00:24:23 +0800 Subject: [PATCH] fix inject --- src/Injections/Graph/InjectionBranch.cs | 4 ++-- src/Injections/Graph/InjectionNode.cs | 5 +++-- src/Injections/Injector.cs | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Injections/Graph/InjectionBranch.cs b/src/Injections/Graph/InjectionBranch.cs index e1df68f..79f7146 100644 --- a/src/Injections/Graph/InjectionBranch.cs +++ b/src/Injections/Graph/InjectionBranch.cs @@ -4,8 +4,8 @@ namespace DCFApixels.DragonECS { public class InjectionBranch { - private Injector _source; - private Type _type; + private readonly Injector _source; + private readonly Type _type; private InjectionNodeBase[] _nodes = new InjectionNodeBase[2]; private int _nodesCount = 0; private bool _isDeclared = false; diff --git a/src/Injections/Graph/InjectionNode.cs b/src/Injections/Graph/InjectionNode.cs index a19372a..c287304 100644 --- a/src/Injections/Graph/InjectionNode.cs +++ b/src/Injections/Graph/InjectionNode.cs @@ -24,11 +24,12 @@ namespace DCFApixels.DragonECS { _process = pipeline.GetProcess>(); } - public sealed override void Inject(object obj) + public sealed override void Inject(object raw) { + T obj = (T)raw; for (int i = 0; i < _process.Length; i++) { - _process[i].Inject((T)obj); + _process[i].Inject(obj); } } } diff --git a/src/Injections/Injector.cs b/src/Injections/Injector.cs index 248fbae..117e910 100644 --- a/src/Injections/Injector.cs +++ b/src/Injections/Injector.cs @@ -26,6 +26,7 @@ namespace DCFApixels.DragonECS public void Inject(T obj) { + object raw = obj; Type type = obj.GetType(); if (_branches.TryGetValue(type, out InjectionBranch branch) == false) { @@ -41,7 +42,7 @@ namespace DCFApixels.DragonECS InitBranch(branch); } } - branch.Inject(obj); + branch.Inject(raw); } #region Internal @@ -69,7 +70,7 @@ namespace DCFApixels.DragonECS { var type = item.Key; var branch = item.Value; - if (type.IsAssignableFrom(branch.Type)) + if (node.Type.IsAssignableFrom(branch.Type)) { branch.AddNode(node); }