{"id":504,"date":"2024-11-23T12:06:34","date_gmt":"2024-11-23T12:06:34","guid":{"rendered":"https:\/\/docs.sisus.co\/init-args\/?p=504"},"modified":"2025-07-14T19:30:01","modified_gmt":"2025-07-14T19:30:01","slug":"receiving-more-than-twelve-services","status":"publish","type":"post","link":"https:\/\/docs.sisus.co\/init-args\/problems-and-solutions\/receiving-more-than-twelve-services\/","title":{"rendered":"Receiving More Than Twelve Objects"},"content":{"rendered":"<h1>Issue<\/h1>\n<p>Init(args) only supports passing a maximum of twelve arguments to a component that derives from <a href=\"https:\/\/docs.sisus.co\/init-args\/features\/monobehaviour-t\/\">MonoBehaviour&lt;T&#8230;&gt;<\/a> or implements <a href=\"https:\/\/docs.sisus.co\/init-args\/reference\/iinitializable\/\">IInitializable&lt;T&#8230;&gt;<\/a> during its initialization.<\/p>\n<p>What can you do if you have a legacy class that depends on more than twelve external objects, and you want to refactor the class to derive from MonoBehaviour&lt;T&#8230;&gt; and receive those arguments via Init(args)?<\/p>\n<h1>Solution #1: Extract Class<\/h1>\n<p>Having more than twelve dependencies is a strong indicator that your class probably has <a href=\"https:\/\/en.wikipedia.org\/wiki\/Single-responsibility_principle\">too many responsibilities<\/a>.<\/p>\n<p>Consider applying <a href=\"https:\/\/refactoring.guru\/extract-class\">extract class<\/a> refactoring on the component in order to split it into multiple smaller components that require a smaller number of Init arguments.<\/p>\n<pre class=\"code_syntax\" style=\"color: #000020; background: #f6f8ff;\"><span class=\"line_wrapper\"><span style=\"color: #200080; font-weight: bold;\">class<\/span> <span style=\"color: #005fd2;\">Player<\/span> <span style=\"color: #308080;\">:<\/span> MonoBehaviour<span style=\"color: #308080;\">&lt;<\/span>IInputManager<span style=\"color: #308080;\">,<\/span> Collider<span style=\"color: #308080;\">,<\/span>  Rigidbody<span style=\"color: #308080;\">, <\/span>Camera<span style=\"color: #308080;\">, <\/span>\u2026 <span style=\"color: #406080;\">&gt; {<\/span> \u2026 <span style=\"color: #406080;\">}\r\n<\/span><\/span><span class=\"line_wrapper\"><span style=\"color: #200080; font-weight: bold;\">\r\n        \u2193\r\n\r\nclass<\/span> <span style=\"color: #005fd2;\">Player<\/span> <span style=\"color: #308080;\">:<\/span> MonoBehaviour<span style=\"color: #308080;\">&lt; <\/span>\u2026 <span style=\"color: #308080;\">&gt; {<\/span> \u2026 <span style=\"color: #406080;\">}<\/span><\/span>\r\n<span class=\"line_wrapper\"><span style=\"color: #200080; font-weight: bold;\">class<\/span> <span style=\"color: #005fd2;\">CollisionHandler<\/span> <span style=\"color: #308080;\">:<\/span> MonoBehaviour<span style=\"color: #308080;\">&lt;<\/span>Collider<span style=\"color: #308080;\">&gt;<\/span> <span style=\"color: #406080;\">{<\/span> \u2026 <span style=\"color: #406080;\">}<\/span><\/span>\r\n<span class=\"line_wrapper\"><span style=\"color: #200080; font-weight: bold;\">class<\/span> <span style=\"color: #005fd2;\">AimHandler<\/span> <span style=\"color: #308080;\">:<\/span> MonoBehaviour<span style=\"color: #308080;\">&lt;<\/span>Camera<span style=\"color: #308080;\">,<\/span> IInputManager<span style=\"color: #308080;\">&gt;<\/span> <span style=\"color: #406080;\">{<\/span> \u2026 <span style=\"color: #406080;\">}<\/span><\/span>\r\n<span class=\"line_wrapper\"><span style=\"color: #200080; font-weight: bold;\">class<\/span> <span style=\"color: #005fd2;\">MoveHandler<\/span> <span style=\"color: #308080;\">:<\/span> MonoBehaviour<span style=\"color: #308080;\">&lt;<\/span>IInputManager<span style=\"color: #308080;\">,<\/span> Rigidbody<span style=\"color: #308080;\">&gt;<\/span> <span style=\"color: #406080;\">{<\/span> \u2026 <span style=\"color: #406080;\">}<\/span><\/span><\/pre>\n<h1>Solution #2: Parameter Object<\/h1>\n<p>Another thing that could help is to apply <a href=\"https:\/\/refactoring.guru\/introduce-parameter-object\">parameter object<\/a> refactoring to combine multiple dependencies into one object.<\/p>\n<pre class=\"code_syntax\" style=\"color: #000020; background: #f6f8ff;\"><span class=\"line_wrapper\"><span style=\"color: #200080; font-weight: bold;\">class<\/span> <span style=\"color: #005fd2;\">Player<\/span> <span style=\"color: #308080;\">:<\/span> MonoBehaviour<span style=\"color: #308080;\">&lt;<\/span>Collider<span style=\"color: #308080;\">,<\/span> Rigidbody<span style=\"color: #308080;\">,<\/span> \u2026 <span style=\"color: #406080;\">&gt; {<\/span> \u2026 <span style=\"color: #406080;\">}<\/span><\/span>\r\n\r\n<span class=\"line_wrapper\">        \u2193<\/span>\r\n\r\n<span class=\"line_wrapper\"><span style=\"color: #200080; font-weight: bold;\">class<\/span> <span style=\"color: #005fd2;\">Player<\/span> <span style=\"color: #308080;\">:<\/span> MonoBehaviour<span style=\"color: #308080;\">&lt;<\/span>PlayerPhysics<span style=\"color: #308080;\">, <\/span>\u2026 <span style=\"color: #406080;\">&gt; {<\/span> \u2026 <span style=\"color: #406080;\">}<\/span><\/span><\/pre>\n<h1>Solution #3: Tuple<\/h1>\n<p>If you don&#8217;t have time to get fancy with refactoring at this time, as a quick workaround you can use <a href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/csharp\/language-reference\/builtin-types\/value-tuples\">tuple<\/a> to combine as many objects as you want into a single Init argument:<\/p>\n<pre class=\"code_syntax\" style=\"color: #000020; background: #f6f8ff;\"><span class=\"line_wrapper\"><span style=\"color: #200080; font-weight: bold;\">public<\/span> <span style=\"color: #200080; font-weight: bold;\">class<\/span> <span style=\"color: #005fd2;\">INeedThirteenArgs<\/span> <span style=\"color: #308080;\">:<\/span> MonoBehaviour<span style=\"color: #308080;\">&lt;<\/span><span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span> a<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> b<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> c<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> d<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> e<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> f<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> g<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> h<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> i<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> j<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> k<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> l<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> m<span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">&gt;<\/span><\/span>\r\n<span class=\"line_wrapper\"><span style=\"color: #406080;\">{<\/span><\/span>\r\n<span class=\"line_wrapper\">   <span style=\"color: #200080; font-weight: bold;\">private<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> a<span style=\"color: #308080;\">,<\/span> b<span style=\"color: #308080;\">,<\/span> c<span style=\"color: #308080;\">,<\/span> d<span style=\"color: #308080;\">,<\/span> e<span style=\"color: #308080;\">,<\/span> f<span style=\"color: #308080;\">,<\/span> g<span style=\"color: #308080;\">,<\/span> h<span style=\"color: #308080;\">,<\/span> i<span style=\"color: #308080;\">,<\/span> j<span style=\"color: #308080;\">,<\/span> k<span style=\"color: #308080;\">,<\/span> l<span style=\"color: #308080;\">,<\/span> m<span style=\"color: #406080;\">;<\/span><\/span>\r\n\r\n<span class=\"line_wrapper\">   <span style=\"color: #200080; font-weight: bold;\">protected<\/span> <span style=\"color: #200080; font-weight: bold;\">override<\/span> <span style=\"color: #200080; font-weight: bold;\">void<\/span> <span style=\"color: #005fd2;\">Init<\/span><span style=\"color: #308080;\">(<\/span><span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span> a<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> b<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> c<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> d<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> e<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> f<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> g<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> h<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> i<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> j<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> k<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> l<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> m<span style=\"color: #308080;\">)<\/span> args<span style=\"color: #308080;\">)<\/span><\/span>\r\n<span class=\"line_wrapper\">   <span style=\"color: #406080;\">{<\/span><\/span>\r\n<span class=\"line_wrapper\">      a <span style=\"color: #308080;\">=<\/span> args<span style=\"color: #308080;\">.<\/span>a<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">      b <span style=\"color: #308080;\">=<\/span> args<span style=\"color: #308080;\">.<\/span>b<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">      c <span style=\"color: #308080;\">=<\/span> args<span style=\"color: #308080;\">.<\/span>c<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">      d <span style=\"color: #308080;\">=<\/span> args<span style=\"color: #308080;\">.<\/span>d<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">      e <span style=\"color: #308080;\">=<\/span> args<span style=\"color: #308080;\">.<\/span>e<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">      f <span style=\"color: #308080;\">=<\/span> args<span style=\"color: #308080;\">.<\/span>f<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">      g <span style=\"color: #308080;\">=<\/span> args<span style=\"color: #308080;\">.<\/span>g<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">      h <span style=\"color: #308080;\">=<\/span> args<span style=\"color: #308080;\">.<\/span>h<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">      i <span style=\"color: #308080;\">=<\/span> args<span style=\"color: #308080;\">.<\/span>i<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">      j <span style=\"color: #308080;\">=<\/span> args<span style=\"color: #308080;\">.<\/span>j<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">      k <span style=\"color: #308080;\">=<\/span> args<span style=\"color: #308080;\">.<\/span>k<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">      l <span style=\"color: #308080;\">=<\/span> args<span style=\"color: #308080;\">.<\/span>l<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">      m <span style=\"color: #308080;\">=<\/span> args<span style=\"color: #308080;\">.<\/span>m<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">   <span style=\"color: #406080;\">}<\/span><\/span>\r\n<span class=\"line_wrapper\"><span style=\"color: #406080;\">}<\/span><\/span><\/pre>\n<p>Then when initializing your object, instead of passing in each service separately, you just pass in the single tuple:<\/p>\n<pre class=\"code_syntax\" style=\"color: #000020; background: #f6f8ff;\"><span class=\"line_wrapper\"><span style=\"color: #200080; font-weight: bold;\">var<\/span> args <span style=\"color: #308080;\">=<\/span> <span style=\"color: #308080;\">(<\/span><span style=\"color: #008c00;\">1<\/span><span style=\"color: #308080;\">,<\/span> <span style=\"color: #008c00;\">2<\/span><span style=\"color: #308080;\">,<\/span> <span style=\"color: #008c00;\">3<\/span><span style=\"color: #308080;\">,<\/span> <span style=\"color: #008c00;\">4<\/span><span style=\"color: #308080;\">,<\/span> <span style=\"color: #008c00;\">5<\/span><span style=\"color: #308080;\">,<\/span> <span style=\"color: #008c00;\">6<\/span><span style=\"color: #308080;\">,<\/span> <span style=\"color: #008c00;\">7<\/span><span style=\"color: #308080;\">,<\/span> <span style=\"color: #008c00;\">8<\/span><span style=\"color: #308080;\">,<\/span> <span style=\"color: #008c00;\">9<\/span><span style=\"color: #308080;\">,<\/span> <span style=\"color: #008c00;\">10<\/span><span style=\"color: #308080;\">,<\/span> <span style=\"color: #008c00;\">11<\/span><span style=\"color: #308080;\">,<\/span> <span style=\"color: #008c00;\">12<\/span><span style=\"color: #308080;\">,<\/span> <span style=\"color: #008c00;\">13<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">gameObject<span style=\"color: #308080;\">.<\/span>AddComponent<span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">out<\/span> INeedThirteenArgs result<span style=\"color: #308080;\">,<\/span> args<span style=\"color: #308080;\">)<\/span><span style=\"color: #406080;\">;<\/span><\/span><\/pre>\n<p>To create a Initializer for the component that supports assigning each of the services contained inside the tuple separately using the Inspector, you can have it derive from InitializerBase. While the Initializer base class handles visualizing and serializing the Init arguments for you, the InitializerBase leaves it up to you to implement this manually:<\/p>\n<pre class=\"code_syntax\" style=\"color: #000020; background: #f6f8ff;\"><span class=\"line_wrapper\"><span style=\"color: #200080; font-weight: bold;\">class<\/span> <span style=\"color: #005fd2;\">INeedThirteenArgsInitializer<\/span> <span style=\"color: #308080;\">:<\/span> InitializerBase<span style=\"color: #308080;\">&lt;<\/span>INeedThirteenArgs<span style=\"color: #308080;\">,<\/span> <span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span> a<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> b<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> c<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> d<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> e<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> f<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> g<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> h<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> i<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> j<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> k<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> l<span style=\"color: #308080;\">,<\/span> <span style=\"color: #200080; font-weight: bold;\">int<\/span> m<span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">&gt;<\/span><\/span>\r\n<span class=\"line_wrapper\"><span style=\"color: #406080;\">{<\/span><\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #308080;\">[<\/span>SerializeField<span style=\"color: #308080;\">]<\/span> Any<span style=\"color: #308080;\">&lt;<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span><span style=\"color: #308080;\">&gt;<\/span> a<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #308080;\">[<\/span>SerializeField<span style=\"color: #308080;\">]<\/span> Any<span style=\"color: #308080;\">&lt;<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span><span style=\"color: #308080;\">&gt;<\/span> b<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #308080;\">[<\/span>SerializeField<span style=\"color: #308080;\">]<\/span> Any<span style=\"color: #308080;\">&lt;<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span><span style=\"color: #308080;\">&gt;<\/span> c<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #308080;\">[<\/span>SerializeField<span style=\"color: #308080;\">]<\/span> Any<span style=\"color: #308080;\">&lt;<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span><span style=\"color: #308080;\">&gt;<\/span> d<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #308080;\">[<\/span>SerializeField<span style=\"color: #308080;\">]<\/span> Any<span style=\"color: #308080;\">&lt;<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span><span style=\"color: #308080;\">&gt;<\/span> e<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #308080;\">[<\/span>SerializeField<span style=\"color: #308080;\">]<\/span> Any<span style=\"color: #308080;\">&lt;<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span><span style=\"color: #308080;\">&gt;<\/span> f<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #308080;\">[<\/span>SerializeField<span style=\"color: #308080;\">]<\/span> Any<span style=\"color: #308080;\">&lt;<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span><span style=\"color: #308080;\">&gt;<\/span> g<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #308080;\">[<\/span>SerializeField<span style=\"color: #308080;\">]<\/span> Any<span style=\"color: #308080;\">&lt;<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span><span style=\"color: #308080;\">&gt;<\/span> h<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #308080;\">[<\/span>SerializeField<span style=\"color: #308080;\">]<\/span> Any<span style=\"color: #308080;\">&lt;<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span><span style=\"color: #308080;\">&gt;<\/span> i<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #308080;\">[<\/span>SerializeField<span style=\"color: #308080;\">]<\/span> Any<span style=\"color: #308080;\">&lt;<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span><span style=\"color: #308080;\">&gt;<\/span> j<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #308080;\">[<\/span>SerializeField<span style=\"color: #308080;\">]<\/span> Any<span style=\"color: #308080;\">&lt;<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span><span style=\"color: #308080;\">&gt;<\/span> k<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #308080;\">[<\/span>SerializeField<span style=\"color: #308080;\">]<\/span> Any<span style=\"color: #308080;\">&lt;<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span><span style=\"color: #308080;\">&gt;<\/span> l<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #308080;\">[<\/span>SerializeField<span style=\"color: #308080;\">]<\/span> Any<span style=\"color: #308080;\">&lt;<\/span><span style=\"color: #200080; font-weight: bold;\">int<\/span><span style=\"color: #308080;\">&gt;<\/span> m<span style=\"color: #406080;\">;<\/span><\/span>\r\n\r\n<span class=\"line_wrapper\">    <span style=\"color: #200080; font-weight: bold;\">protected<\/span> <span style=\"color: #200080; font-weight: bold;\">override<\/span> <span style=\"color: #308080;\">(<\/span>A a<span style=\"color: #308080;\">,<\/span> B b<span style=\"color: #308080;\">,<\/span> C c<span style=\"color: #308080;\">,<\/span> D d<span style=\"color: #308080;\">,<\/span> E e<span style=\"color: #308080;\">,<\/span> F f<span style=\"color: #308080;\">,<\/span> G g<span style=\"color: #308080;\">,<\/span> H h<span style=\"color: #308080;\">,<\/span> I i<span style=\"color: #308080;\">,<\/span> J j<span style=\"color: #308080;\">,<\/span> K k<span style=\"color: #308080;\">,<\/span> L l<span style=\"color: #308080;\">,<\/span> M m<span style=\"color: #308080;\">)<\/span> Argument<\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #406080;\">{<\/span><\/span>\r\n<span class=\"line_wrapper\">        <span style=\"color: #200080; font-weight: bold;\">get<\/span> <span style=\"color: #308080;\">=<\/span><span style=\"color: #308080;\">&gt;<\/span> <span style=\"color: #308080;\">(<\/span>a<span style=\"color: #308080;\">.<\/span>GetValue<span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">this<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">,<\/span> b<span style=\"color: #308080;\">.<\/span>GetValue<span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">this<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">,<\/span> c<span style=\"color: #308080;\">.<\/span>GetValue<span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">this<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">,<\/span> d<span style=\"color: #308080;\">.<\/span>GetValue<span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">this<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">,<\/span> e<span style=\"color: #308080;\">.<\/span>GetValue<span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">this<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">,<\/span> f<span style=\"color: #308080;\">.<\/span>GetValue<span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">this<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">,<\/span> g<span style=\"color: #308080;\">.<\/span>GetValue<span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">this<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">,<\/span> h<span style=\"color: #308080;\">.<\/span>GetValue<span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">this<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">,<\/span> i<span style=\"color: #308080;\">.<\/span>GetValue<span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">this<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">,<\/span> j<span style=\"color: #308080;\">.<\/span>GetValue<span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">this<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">,<\/span> k<span style=\"color: #308080;\">.<\/span>GetValue<span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">this<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">,<\/span> l<span style=\"color: #308080;\">.<\/span>GetValue<span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">this<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">,<\/span> m<span style=\"color: #308080;\">.<\/span>GetValue<span style=\"color: #308080;\">(<\/span><span style=\"color: #200080; font-weight: bold;\">this<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #308080;\">)<\/span><span style=\"color: #406080;\">;<\/span><\/span>\r\n\r\n<span class=\"line_wrapper\">        <span style=\"color: #200080; font-weight: bold;\">set<\/span><\/span>\r\n<span class=\"line_wrapper\">        <span style=\"color: #406080;\">{<\/span><\/span>\r\n<span class=\"line_wrapper\">            a <span style=\"color: #308080;\">=<\/span> value<span style=\"color: #308080;\">.<\/span>a<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">            b <span style=\"color: #308080;\">=<\/span> value<span style=\"color: #308080;\">.<\/span>b<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">            c <span style=\"color: #308080;\">=<\/span> value<span style=\"color: #308080;\">.<\/span>c<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">            d <span style=\"color: #308080;\">=<\/span> value<span style=\"color: #308080;\">.<\/span>d<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">            e <span style=\"color: #308080;\">=<\/span> value<span style=\"color: #308080;\">.<\/span>e<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">            f <span style=\"color: #308080;\">=<\/span> value<span style=\"color: #308080;\">.<\/span>f<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">            g <span style=\"color: #308080;\">=<\/span> value<span style=\"color: #308080;\">.<\/span>g<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">            h <span style=\"color: #308080;\">=<\/span> value<span style=\"color: #308080;\">.<\/span>h<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">            i <span style=\"color: #308080;\">=<\/span> value<span style=\"color: #308080;\">.<\/span>i<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">            j <span style=\"color: #308080;\">=<\/span> value<span style=\"color: #308080;\">.<\/span>j<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">            k <span style=\"color: #308080;\">=<\/span> value<span style=\"color: #308080;\">.<\/span>k<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">            l <span style=\"color: #308080;\">=<\/span> value<span style=\"color: #308080;\">.<\/span>l<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">            m <span style=\"color: #308080;\">=<\/span> value<span style=\"color: #308080;\">.<\/span>m<span style=\"color: #406080;\">;<\/span><\/span>\r\n<span class=\"line_wrapper\">        <span style=\"color: #406080;\">}<\/span><\/span>\r\n<span class=\"line_wrapper\">    <span style=\"color: #406080;\">}<\/span><\/span>\r\n<span class=\"line_wrapper\"><span style=\"color: #406080;\">}<\/span><\/span><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Issue Init(args) only supports passing a maximum of twelve arguments to a component that derives from MonoBehaviour&lt;T&#8230;&gt; or implements IInitializable&lt;T&#8230;&gt; during its initialization. What can you do if you have a legacy class that depends on more than twelve external objects, and you want to refactor the class to derive from MonoBehaviour&lt;T&#8230;&gt; and receive those ..<\/p>\n<div class=\"clear-fix\"><\/div>\n<p><a href=\"https:\/\/docs.sisus.co\/init-args\/problems-and-solutions\/receiving-more-than-twelve-services\/\" title=\"read more\">Read more<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[9],"tags":[],"_links":{"self":[{"href":"https:\/\/docs.sisus.co\/init-args\/wp-json\/wp\/v2\/posts\/504"}],"collection":[{"href":"https:\/\/docs.sisus.co\/init-args\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/docs.sisus.co\/init-args\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/docs.sisus.co\/init-args\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.sisus.co\/init-args\/wp-json\/wp\/v2\/comments?post=504"}],"version-history":[{"count":2,"href":"https:\/\/docs.sisus.co\/init-args\/wp-json\/wp\/v2\/posts\/504\/revisions"}],"predecessor-version":[{"id":631,"href":"https:\/\/docs.sisus.co\/init-args\/wp-json\/wp\/v2\/posts\/504\/revisions\/631"}],"wp:attachment":[{"href":"https:\/\/docs.sisus.co\/init-args\/wp-json\/wp\/v2\/media?parent=504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/docs.sisus.co\/init-args\/wp-json\/wp\/v2\/categories?post=504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/docs.sisus.co\/init-args\/wp-json\/wp\/v2\/tags?post=504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}