private ConstructorInfo FindConstructor()
{
#if !PCL
return ObjectInstance.GetType().GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, new Type[] { typeof(SerializationInfo), typeof(StreamingContext) }, null);
#else
var ctors = ObjectInstance.GetType().GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
foreach (var ctor in ctors) {
var parameters = ctor.GetParameters();
if (parameters.Length != 2)
continue;
if (parameters[0].ParameterType == typeof (SerializationInfo) &&
parameters[1].ParameterType == typeof (StreamingContext))
return ctor;
}
return null;
#endif
}