private static IModule InitializeMono(Type targetType, ModuleAttribute attribute)
        {
            GameObject serviceInstance = null;

            if (attribute != null)
            {
                if (!string.IsNullOrEmpty(attribute.PrefabPath))
                {
                    serviceInstance = attribute.PrefabPath.LoadAndInstantiate();
                }
            }

            if (serviceInstance == null)
            {
                serviceInstance = new GameObject();
            }

            serviceInstance.name = "" + targetType;
            serviceInstance.transform.SetParent(Parent);
            serviceInstance.transform.position = Vector3.zero;

            var serviceComponent = serviceInstance.GetComponent(targetType) ??
                                   serviceInstance.AddComponent(targetType);

            return((IModule)serviceComponent);
        }
        private static IModule InitializeService(Type targetType, ModuleAttribute attribute)
        {
            if (Is(targetType.BaseType, typeof(MonoBehaviour)))
            {
                return(InitializeMono(targetType, attribute));
            }

            return((IModule)Activator.CreateInstance(targetType));
        }