From: Fab Stz <fabstz-it@yahoo.fr>
Date: Sun, 13 Apr 2025 14:35:28 +0200
Subject: Remove use of DynamicMetaObject.cs

File Jayrock/src/Jayrock.Json/Dynamic/DynamicMetaObject.cs is removed from the
orig.tar.

This file is licensed under the MS-PL. Paragraph 3D of this license is not
compatible with GPL.

More info: https://github.com/kee-org/keepassrpc/issues/152
---
 Jayrock/src/Jayrock.Json/Jayrock.Json.csproj |  2 +-
 Jayrock/src/Jayrock.Json/Json/JsonObject.cs  | 98 ++++++++++++++--------------
 2 files changed, 50 insertions(+), 50 deletions(-)

diff --git a/Jayrock/src/Jayrock.Json/Jayrock.Json.csproj b/Jayrock/src/Jayrock.Json/Jayrock.Json.csproj
index e12fe2b..cda4fb0 100644
--- a/Jayrock/src/Jayrock.Json/Jayrock.Json.csproj
+++ b/Jayrock/src/Jayrock.Json/Jayrock.Json.csproj
@@ -132,7 +132,7 @@
     <Compile Include="DictionaryHelper.cs">
       <SubType>Code</SubType>
     </Compile>
-    <Compile Include="Dynamic\DynamicMetaObject.cs" />
+    <!--Compile Include="Dynamic\DynamicMetaObject.cs" /-->
     <Compile Include="IAttributeAttachment.cs">
       <SubType>Code</SubType>
     </Compile>
diff --git a/Jayrock/src/Jayrock.Json/Json/JsonObject.cs b/Jayrock/src/Jayrock.Json/Json/JsonObject.cs
index 3f7a4fd..9d1f995 100644
--- a/Jayrock/src/Jayrock.Json/Json/JsonObject.cs
+++ b/Jayrock/src/Jayrock.Json/Json/JsonObject.cs
@@ -29,7 +29,7 @@ namespace Jayrock.Json
     using System.Diagnostics;
     using System.IO;
    
-    using Jayrock.Dynamic;
+//    using Jayrock.Dynamic;
     using Jayrock.Json.Conversion;
 
     #if !NET_1_0 && !NET_1_1
@@ -70,8 +70,8 @@ namespace Jayrock.Json
         System.Collections.Generic.IDictionary<string, object>
         #endif
         #if !NET_1_0 && !NET_1_1 && !NET_2_0
-        /* ... */ , 
-        System.Dynamic.IDynamicMetaObjectProvider
+//        /* ... */ ,
+//        System.Dynamic.IDynamicMetaObjectProvider
         #endif
     {
         private ArrayList _nameIndexList;
@@ -601,52 +601,52 @@ namespace Jayrock.Json
 
         #if !NET_1_0 && !NET_1_1 && !NET_2_0
 
-        DynamicMetaObject IDynamicMetaObjectProvider.GetMetaObject(Expression parameter)
-        {
-            return new DynamicMetaObject<JsonObject>(parameter, this, _runtime, /* dontFallbackFirst */ true);
-        }
-
-        private readonly DynamicObjectRuntime<JsonObject> _runtime = new DynamicObjectRuntime<JsonObject>
-        {
-            TryGetMember = TryGetMember,
-            TrySetMember = TrySetMember,
-            TryInvokeMember = TryInvokeMember,
-            TryDeleteMember = TryDeleteMember,
-            GetDynamicMemberNames = o => o.Names.Cast<string>()
-        };
-
-        private static Option<object> TryInvokeMember(JsonObject obj, InvokeMemberBinder arg2, object[] arg3)
-        {
-            return Option<object>.None; // TryGetMember(arg1, arg2)
-        }
-
-        private static bool TryDeleteMember(JsonObject obj, DeleteMemberBinder binder)
-        {
-            if (!obj.Contains(binder.Name))
-                return false;
-            obj.Remove(binder.Name);
-            return true;
-        }
-
-        private static bool TrySetMember(JsonObject obj, SetMemberBinder binder, object value)
-        {
-            obj[binder.Name] = value; 
-            return true;
-        }
-
-        private static Option<object> TryGetMember(JsonObject obj, GetMemberBinder binder)
-        {
-            if (!obj.HasMembers)
-                return Option<object>.None;
-            var name = binder.Name;
-            var value = obj[name];
-            if (value == null && !obj.Contains(name))
-            {
-                // TODO support case-insensitive bindings
-                return Option<object>.None;
-            }
-            return Option.Value(value);
-        }
+//        DynamicMetaObject IDynamicMetaObjectProvider.GetMetaObject(Expression parameter)
+//        {
+//            return new DynamicMetaObject<JsonObject>(parameter, this, _runtime, /* dontFallbackFirst */ true);
+//        }
+//
+//        private readonly DynamicObjectRuntime<JsonObject> _runtime = new DynamicObjectRuntime<JsonObject>
+//        {
+//            TryGetMember = TryGetMember,
+//            TrySetMember = TrySetMember,
+//            TryInvokeMember = TryInvokeMember,
+//            TryDeleteMember = TryDeleteMember,
+//            GetDynamicMemberNames = o => o.Names.Cast<string>()
+//        };
+//
+//        private static Option<object> TryInvokeMember(JsonObject obj, InvokeMemberBinder arg2, object[] arg3)
+//        {
+//            return Option<object>.None; // TryGetMember(arg1, arg2)
+//        }
+//
+//        private static bool TryDeleteMember(JsonObject obj, DeleteMemberBinder binder)
+//        {
+//            if (!obj.Contains(binder.Name))
+//                return false;
+//            obj.Remove(binder.Name);
+//            return true;
+//        }
+//
+//        private static bool TrySetMember(JsonObject obj, SetMemberBinder binder, object value)
+//        {
+//            obj[binder.Name] = value;
+//            return true;
+//        }
+//
+//        private static Option<object> TryGetMember(JsonObject obj, GetMemberBinder binder)
+//        {
+//            if (!obj.HasMembers)
+//                return Option<object>.None;
+//            var name = binder.Name;
+//            var value = obj[name];
+//            if (value == null && !obj.Contains(name))
+//            {
+//                // TODO support case-insensitive bindings
+//                return Option<object>.None;
+//            }
+//            return Option.Value(value);
+//        }
 
         #endif // !NET_1_0 && !NET_1_1 && !NET_2_0
     }
