Exemplo n.º 1
0
 public static void AddMethodTranslator(MethodInfo method, IJsMethodTranslator translator)
 {
     MethodTranslators.Add(method, translator);
     if (method.DeclaringType.IsInterface)
     {
         Interfaces.Add(method.DeclaringType);
     }
 }
Exemplo n.º 2
0
 public static void AddMethodTranslator(Type declaringType, string methodName, IJsMethodTranslator translator, int parameterCount, bool allowMultipleMethods = false)
 {
     var methods = declaringType.GetMethods()
         .Where(m => m.Name == methodName)
         .Where(m => m.GetParameters().Length == parameterCount)
         .ToArray();
     if (methods.Length > 1 && !allowMultipleMethods) throw new Exception("more then one methods");
     foreach (var method in methods)
     {
         AddMethodTranslator(method, translator);
     }
 }
Exemplo n.º 3
0
 public static void AddMethodTranslator(Type declaringType, string methodName, IJsMethodTranslator translator, Type[] parameters = null)
 {
     var methods = declaringType.GetMethods()
         .Where(m => m.Name == methodName);
     if (parameters != null)
     {
         methods = methods.Where(m =>
         {
             var mp = m.GetParameters();
             return mp.Length == parameters.Length && parameters.Zip(mp, (specified, method) => method.ParameterType.IsAssignableFrom(specified)).All(t => t);
         });
     }
     AddMethodTranslator(methods.Single(), translator);
 }
Exemplo n.º 4
0
 public static void AddPropertyGetterTranslator(Type declaringType, string methodName, IJsMethodTranslator translator)
 {
     var property = declaringType.GetProperty(methodName);
     AddMethodTranslator(property.GetMethod, translator);
 }
Exemplo n.º 5
0
 public static void AddMethodTranslator(MethodInfo method, IJsMethodTranslator translator)
 {
     MethodTranslators.Add(method, translator);
     if (method.DeclaringType.IsInterface)
         Interfaces.Add(method.DeclaringType);
 }
Exemplo n.º 6
0
        public static void AddPropertyGetterTranslator(Type declaringType, string methodName, IJsMethodTranslator translator)
        {
            var property = declaringType.GetProperty(methodName);

            AddMethodTranslator(property.GetMethod, translator);
        }
Exemplo n.º 7
0
        public static void AddMethodTranslator(Type declaringType, string methodName, IJsMethodTranslator translator, int parameterCount, bool allowMultipleMethods = false)
        {
            var methods = declaringType.GetMethods()
                          .Where(m => m.Name == methodName)
                          .Where(m => m.GetParameters().Length == parameterCount)
                          .ToArray();

            if (methods.Length > 1 && !allowMultipleMethods)
            {
                throw new Exception("more then one methods");
            }
            foreach (var method in methods)
            {
                AddMethodTranslator(method, translator);
            }
        }
Exemplo n.º 8
0
        public static void AddMethodTranslator(Type declaringType, string methodName, IJsMethodTranslator translator, Type[] parameters = null)
        {
            var methods = declaringType.GetMethods()
                          .Where(m => m.Name == methodName);

            if (parameters != null)
            {
                methods = methods.Where(m =>
                {
                    var mp = m.GetParameters();
                    return(mp.Length == parameters.Length && parameters.Zip(mp, (specified, method) => method.ParameterType.IsAssignableFrom(specified)).All(t => t));
                });
            }
            AddMethodTranslator(methods.Single(), translator);
        }