Lines Matching refs:T1
137 // Non-generic interface allowing us to use an instance of ReflectionHelper<T1, T2> without statically
161 private class ReflectionHelper<T1, T2> : IReflectionHelper
170 var del = (Func<T1, int>) method.CreateDelegate(typeof(Func<T1, int>));
171 return message => del((T1) message);
178 var del = (Func<T1, T2>) method.CreateDelegate(typeof(Func<T1, T2>));
179 return message => (int) (object) del((T1) message);
185 var del = (Action<T1>) method.CreateDelegate(typeof(Action<T1>));
186 return message => del((T1) message);
191 var del = (Func<T1, T2>) method.CreateDelegate(typeof(Func<T1, T2>));
192 return message => del((T1) message);
197 var del = (Action<T1, T2>) method.CreateDelegate(typeof(Action<T1, T2>));
198 return (message, arg) => del((T1) message, (T2) arg);
203 var del = (Func<T1, bool>)method.CreateDelegate(typeof(Func<T1, bool>));
204 return message => del((T1)message);
208 private class ExtensionReflectionHelper<T1, T3> : IExtensionReflectionHelper
209 where T1 : IExtendableMessage<T1>
220 if (!(message is T1))
225 T1 extensionMessage = (T1)message;
227 if (extension is Extension<T1, T3>)
229 return extensionMessage.GetExtension(extension as Extension<T1, T3>);
231 else if (extension is RepeatedExtension<T1, T3>)
233 return extensionMessage.GetOrInitializeExtension(extension as RepeatedExtension<T1, T3>);
243 if (!(message is T1))
248 T1 extensionMessage = (T1)message;
250 if (extension is Extension<T1, T3>)
252 return extensionMessage.HasExtension(extension as Extension<T1, T3>);
254 else if (extension is RepeatedExtension<T1, T3>)
266 if (!(message is T1))
271 T1 extensionMessage = (T1)message;
273 if (extension is Extension<T1, T3>)
275 extensionMessage.SetExtension(extension as Extension<T1, T3>, (T3)value);
277 else if (extension is RepeatedExtension<T1, T3>)
289 if (!(message is T1))
294 T1 extensionMessage = (T1)message;
296 if (extension is Extension<T1, T3>)
298 extensionMessage.ClearExtension(extension as Extension<T1, T3>);
300 else if (extension is RepeatedExtension<T1, T3>)
302 extensionMessage.GetExtension(extension as RepeatedExtension<T1, T3>).Clear();
311 private class ExtensionSetReflector<T1> : IExtensionSetReflector where T1 : IExtendableMessage<T1>
315 var prop = typeof(T1).GetTypeInfo().GetDeclaredProperty("_Extensions");
317 var getFunc = (Func<T1, ExtensionSet<T1>>)prop.GetGetMethod(true).CreateDelegate(typeof(Func<T1, ExtensionSet<T1>>));
319 var getFunc = (Func<T1, ExtensionSet<T1>>)prop.GetMethod.CreateDelegate(typeof(Func<T1, ExtensionSet<T1>>));
321 var initializedFunc = (Func<ExtensionSet<T1>, bool>)
322 typeof(ExtensionSet<T1>)
325 .CreateDelegate(typeof(Func<ExtensionSet<T1>, bool>));
327 var set = getFunc((T1)m);
333 // Runtime compatibility checking code - see ReflectionHelper<T1, T2>.CreateFuncIMessageInt32 for