You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Authors of libraries which include types that extend Element need a way to serialize and deserialize those types to/from JSON. Currently, an attempt to deserialize a type which extends Element fails because the type can't be found using the current lookup in the executing assembly. This is noted in #104.
The authors of glTF have a nice solution for this, which I think we should adopt. KhronosGroup/glTF#404, although with some modifications. glTF extensions allow extension at the property level. I think we should only allow extension at the type level (for now).
A model created using an extension library would need to declare its extensions. Perhaps like:
{
"extensions":["foo.bar.baz"]
}
Upon deserialization, the deserializer will check whether there is a foo.bar.baz assembly loaded in the domain. If so, it will attempt to deserialize, using the foo.bar.baz assembly (instead of just using the executing assembly as is done currently.).
If an attempt is made to deserialize using an extension that is not available, deserialization should fail with a message like
Attempted to deserialize a model created using the foo.bar.baz extension, which is not currently available in the application domain.
The text was updated successfully, but these errors were encountered:
Authors of libraries which include types that extend
Element
need a way to serialize and deserialize those types to/from JSON. Currently, an attempt to deserialize a type which extendsElement
fails because the type can't be found using the current lookup in the executing assembly. This is noted in #104.The authors of glTF have a nice solution for this, which I think we should adopt. KhronosGroup/glTF#404, although with some modifications. glTF extensions allow extension at the property level. I think we should only allow extension at the type level (for now).
A model created using an extension library would need to declare its extensions. Perhaps like:
Upon deserialization, the deserializer will check whether there is a
foo.bar.baz
assembly loaded in the domain. If so, it will attempt to deserialize, using thefoo.bar.baz
assembly (instead of just using the executing assembly as is done currently.).If an attempt is made to deserialize using an extension that is not available, deserialization should fail with a message like
The text was updated successfully, but these errors were encountered: