using System; using System.Collections.Immutable; using JetBrains.Annotations; using JetBrains.Collections.Viewable; using JetBrains.Rd.Reflection; namespace Test.RdFramework.Reflection { [RdModel] public class Animal : RdReflectionBindableBase { /// /// It is possible to have arbitrary data in live models if attribute is specified /// [NonSerialized] [CanBeNull] public string[] arrays; /// /// Arbitrary data without [NonSerialized] will be serialized only once at the moment of passing to the other side. /// [CanBeNull] public string[] arrays2; [CanBeNull] public IPolymorphicScalar scalar; /// /// Nested RdModel should work /// public ModelSample NestedRdModel; public IViewableList LiveList; public IViewableMap Maps { get; set; } public IViewableSet Sets; } [RdModel] public sealed class Bear : Mammal { } [RdModel] public class Mammal : Animal { } public interface IPolymorphicScalar { } public class Scalar : IPolymorphicScalar { } }