示例#1
0
 private static void FillInDefaultParams(ParameterInfo[] parameterInfos, object[] callParams, object sender)
 {
     for (int i = 0; i < parameterInfos.Length; i++)
     {
         ParameterInfo       paramter             = parameterInfos[i];
         CreateObjectHandler delegateParamHandler = GetDelegateParamHandler(paramter.Name, paramter.ParameterType);
         object obj2 = null;
         if (delegateParamHandler == null)
         {
             try
             {
                 obj2 = Activator.CreateInstance(paramter.ParameterType);
             }
             catch (Exception exception)
             {
                 Trace.WriteLine(string.Concat(new object[] { "Could not create param:", i, " type:", paramter.ParameterType.FullName, ".", exception.ToString() }));
             }
         }
         else
         {
             obj2 = delegateParamHandler(paramter, sender);
         }
         callParams[i] = obj2;
     }
 }
示例#2
0
        private static CreateObjectHandler GetDelegateParamHandler(string paramName, System.Type paramType)
        {
            CreateObjectHandler handler = delegateParams[paramType.FullName + "::" + paramName] as CreateObjectHandler;

            if (handler != null)
            {
                return(handler);
            }
            return(delegateParams[paramType.FullName + "."] as CreateObjectHandler);
        }
示例#3
0
 private static void AddDelegateParam(string paramName, System.Type paramType, CreateObjectHandler objectHandler)
 {
     if (paramName == null)
     {
         delegateParams.Add(paramType.FullName + ".", objectHandler);
     }
     else
     {
         delegateParams.Add(paramType.FullName + "::" + paramName, objectHandler);
     }
 }