◐ Shell
clean mode source ↗

remove remoting block for .NET standard by koubaa · Pull Request #1170 · pythonnet/pythonnet

Expand Up @@ -113,6 +113,23 @@ internal static IntPtr ToPython<T>(T value) return ToPython(value, typeof(T)); }
private static readonly Func<object, bool> IsTransparentProxy = GetIsTransparentProxy();
private static bool Never(object _) => false;
private static Func<object, bool> GetIsTransparentProxy() { var remoting = typeof(int).Assembly.GetType("System.Runtime.Remoting.RemotingServices"); if (remoting is null) return Never;
var isProxy = remoting.GetMethod("IsTransparentProxy", new[] { typeof(object) }); if (isProxy is null) return Never;
return (Func<object, bool>)Delegate.CreateDelegate( typeof(Func<object, bool>), isProxy, throwOnBindFailure: true); }
internal static IntPtr ToPython(object value, Type type) { if (value is PyObject) Expand Down Expand Up @@ -162,15 +179,8 @@ internal static IntPtr ToPython(object value, Type type) var pyderived = value as IPythonDerivedType; if (null != pyderived) { #if NETSTANDARD return ClassDerivedObject.ToPython(pyderived); #else // if object is remote don't do this if (!System.Runtime.Remoting.RemotingServices.IsTransparentProxy(pyderived)) { if (!IsTransparentProxy(pyderived)) return ClassDerivedObject.ToPython(pyderived); } #endif }
// hmm - from Python, we almost never care what the declared Expand Down