Neo4j Hololens

Hey everyone,

we are currently developing an industrial application in unity for the hololens 1.
From the hololens, we want to read and write data from a neo4j database using neo4jclient by readify.
So far it works fine in the unity editor but crashes on the hololens with the following stacktrace:

NotSupportedException: System.Reflection.Emit.DynamicMethod::.ctor
  at System.Reflection.Emit.DynamicMethod..ctor (System.String name, System.Type returnType, System.Type[] parameterTypes, System.Type owner, System.Boolean skipVisibility) [0x00000] in <00000000000000000000000000000000>:0 
  at Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory.CreateDynamicMethod (System.String name, System.Type returnType, System.Type[] parameterTypes, System.Type owner) [0x00000] in <00000000000000000000000000000000>:0 
  at Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory.CreateParameterizedConstructor (System.Reflection.MethodBase method) [0x00000] in <00000000000000000000000000000000>:0 
  at Newtonsoft.Json.Serialization.JsonObjectContract.set_ParametrizedConstructor (System.Reflection.ConstructorInfo value) [0x00000] in <00000000000000000000000000000000>:0 
  at Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract (System.Type objectType) [0x00000] in <00000000000000000000000000000000>:0 
  at Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract (System.Type objectType) [0x00000] in <00000000000000000000000000000000>:0 
  at Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract (System.Type type) [0x00000] in <00000000000000000000000000000000>:0 
  at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.GetContractSafe (System.Object value) [0x00000] in <00000000000000000000000000000000>:0 
  at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize (Newtonsoft.Json.JsonWriter jsonWriter, System.Object value, System.Type objectType) [0x00000] in <00000000000000000000000000000000>:0 
  at Newtonsoft.Json.JsonSerializer.SerializeInternal (Newtonsoft.Json.JsonWriter jsonWriter, System.Object value, System.Type objectType) [0x00000] in <00000000000000000000000000000000>:0 
  at Newtonsoft.Json.JsonSerializer.Serialize (Newtonsoft.Json.JsonWriter jsonWriter, System.Object value) [0x00000] in <00000000000000000000000000000000>:0 
  at Neo4jClient.Serialization.CustomJsonSerializer.Serialize (System.Object obj) [0x00000] in <00000000000000000000000000000000>:0 
  at Neo4jClient.Execution.CypherExecutionPolicy.SerializeRequest (System.Object toSerialize) [0x00000] in <00000000000000000000000000000000>:0 
  at Neo4jClient.GraphClient.PrepareCypherRequest[TResult] (Neo4jClient.Cypher.CypherQuery query, Neo4jClient.Execution.IExecutionPolicy policy) [0x00000] in <00000000000000000000000000000000>:0 
  at Newtonsoft.Json.Serialization.DefaultContractResolver+EnumerableDictionaryWrapper`2+<GetEnumerator>d__2[TEnumeratorKey,TEnumeratorValue]..ctor (System.Int32 <>1__state) [0x00000] in <00000000000000000000000000000000>:0 
  at MS.Internal.Xml.XPath.XPathScanner.get_StringValue () [0x00000] in <00000000000000000000000000000000>:0 
  at Neo4jClient.GraphClient.Neo4jClient.IRawGraphClient.ExecuteGetCypherResultsAsync[TResult] (Neo4jClient.Cypher.CypherQuery query) [0x00000] in <00000000000000000000000000000000>:0 
  at Neo4jClient.GraphClient.Neo4jClient.IRawGraphClient.ExecuteGetCypherResults[TResult] (Neo4jClient.Cypher.CypherQuery query) [0x00000] in <00000000000000000000000000000000>:0 
  at Neo4jClient.Cypher.CypherFluentQuery`1[TResult].get_Results () [0x00000] in <00000000000000000000000000000000>:0 
  at Neo4jTestClass.ShowPersons () [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.Events.UnityAction.Invoke () [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.Events.InvokableCall.Invoke () [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.Events.UnityEvent.Invoke () [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.UI.Interactable.SendOnClick (Microsoft.MixedReality.Toolkit.Input.IMixedRealityPointer pointer) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.UI.Interactable.OnPointerClicked (Microsoft.MixedReality.Toolkit.Input.MixedRealityPointerEventData eventData) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.Input.MixedRealityInputSystem+<>c.<.cctor>b__185_13 (Microsoft.MixedReality.Toolkit.Input.IMixedRealityPointerHandler handler, UnityEngine.EventSystems.BaseEventData eventData) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1].Invoke (T1 handler, UnityEngine.EventSystems.BaseEventData eventData) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.EventSystems.ExecuteEvents.ExecuteHierarchy[T] (UnityEngine.GameObject root, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] callbackFunction) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.Input.MixedRealityInputSystem.DispatchEventToObjectFocusedByPointer[T] (Microsoft.MixedReality.Toolkit.Input.IMixedRealityPointer mixedRealityPointer, Microsoft.MixedReality.Toolkit.Input.BaseInputEventData baseInputEventData, System.Boolean modalEventHandled, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] eventHandler) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.Input.MixedRealityInputSystem.HandlePointerEvent[T] (UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] eventHandler) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.Input.MixedRealityInputSystem.HandleClick () [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.Input.MixedRealityInputSystem.RaisePointerClicked (Microsoft.MixedReality.Toolkit.Input.IMixedRealityPointer pointer, Microsoft.MixedReality.Toolkit.Input.MixedRealityInputAction inputAction, System.Int32 count, Microsoft.MixedReality.Toolkit.Utilities.Handedness handedness, Microsoft.MixedReality.Toolkit.Input.IMixedRealityInputSource inputSource) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.Input.GGVPointer.OnInputUp (Microsoft.MixedReality.Toolkit.Input.InputEventData eventData) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.Input.MixedRealityInputSystem+<>c.<.cctor>b__185_18 (Microsoft.MixedReality.Toolkit.Input.IMixedRealityBaseInputHandler handler, UnityEngine.EventSystems.BaseEventData eventData) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1].Invoke (T1 handler, UnityEngine.EventSystems.BaseEventData eventData) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.BaseEventSystem.HandleEvent[T] (UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] eventHandler) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.Input.MixedRealityInputSystem.DispatchEventToGlobalListeners[T] (Microsoft.MixedReality.Toolkit.Input.BaseInputEventData baseInputEventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] eventHandler) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.Input.MixedRealityInputSystem.HandleEvent[T] (UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] eventHandler) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.Input.MixedRealityInputSystem.RaiseOnInputUp (Microsoft.MixedReality.Toolkit.Input.IMixedRealityInputSource source, Microsoft.MixedReality.Toolkit.Utilities.Handedness handedness, Microsoft.MixedReality.Toolkit.Input.MixedRealityInputAction inputAction) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input.BaseWindowsMixedRealitySource.UpdateTriggerData (UnityEngine.XR.WSA.Input.InteractionSourceState interactionSourceState, Microsoft.MixedReality.Toolkit.Input.MixedRealityInteractionMapping interactionMapping) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input.BaseWindowsMixedRealitySource.UpdateController (UnityEngine.XR.WSA.Input.InteractionSourceState interactionSourceState) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input.WindowsMixedRealityDeviceManager.Update () [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.MixedRealityToolkit+<>c.<UpdateAllServices>b__68_0 (Microsoft.MixedReality.Toolkit.IMixedRealityService service) [0x00000] in <00000000000000000000000000000000>:0 
  at System.Action`1[T].Invoke (T obj) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.MixedRealityToolkit.ExecuteOnAllServices (System.Action`1[T] execute) [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.MixedRealityToolkit.UpdateAllServices () [0x00000] in <00000000000000000000000000000000>:0 
  at Microsoft.MixedReality.Toolkit.MixedRealityToolkit.Update () [0x00000] in <00000000000000000000000000000000>:0 

Does anybody have any expierence in accessing a neo4j-database from the hololens?
Would you rather recommend using neo4jdriver or graphql?

Thanks in advance!
Pascal

Hey @pascal.disse,

Is this something that is replicatable in a hololens emulator?

What sort of query are you running (write/read)?
Do any queries work?
Are you using BoltGraphClient or just GraphClient?

I've no experience with using a hololens to access the DB directly and don't have access to one to try with :)

Chris