예제 #1
0
        public void RegisterFunctionDelegate <T1, T2, TResult>()
        {
            DelegateMapNode node = new DelegateMapNode();

            node.Adapter        = new FunctionDelegateAdapter <T1, T2, TResult>();
            node.ParameterTypes = new Type[] { typeof(T1), typeof(T2), typeof(TResult) };
            functions.Add(node);
            RegisterDelegateConvertor <Func <T1, T2, TResult> >(defaultConverter);
        }
예제 #2
0
        public void RegisterMethodDelegate <T1, T2, T3>()
        {
            DelegateMapNode node = new DelegateMapNode
            {
                Adapter        = new MethodDelegateAdapter <T1, T2, T3>(),
                ParameterTypes = new Type[] { typeof(T1), typeof(T2), typeof(T3) }
            };

            methods.Add(node);
            CheckGeneraicMapper(node);
            RegisterDelegateConvertor <Action <T1, T2, T3> >(defaultConverter);
        }
예제 #3
0
        private void CheckGeneraicMapper(DelegateMapNode node)
        {
            var  list = node.ParameterTypes;
            int  max  = list.Length;
            Type type;

            for (int i = 0; i < max; i++)
            {
                type = list[i];
                if (type.Name.Contains("`"))
                {
                    mClsNameTemp = type.Name;
                    mClsNameTemp = mClsNameTemp + "&";
                    //UnityEngine.Debug.Log("asdfas  " + type.Name);
                    //UnityEngine.Debug.Log("put " + type.Name);
                    mGernericsMapper[type.Name] = mClsNameTemp;
                }
            }
        }