sql >> データベース >  >> NoSQL >> MongoDB

タイプ情報をMongoDBに渡して、インターフェイスタイプを適切に逆シリアル化できるようにしますか?

    MyClassの結果として そのインターフェースを実装する任意のクラス「Bson」を保持できるインターフェースタイプを指す場合、その(すべての)インターフェースの最後にできる「クラスのタイプ」をMongoDBに通知する必要があります。次に、特定のBsonDocumentsを逆シリアル化する方法を知っていることをクラスから推測できます。 それらのクラスのBsonを含みます。

    public interface IMyInterface
    {
        String Name { get; set; }
    }
    
    public class MyIntImpl : IMyInterface
    {
        public String Name { get; set; }
    }
    
    public class MyClass
    {
        public IMyInterface IntRef { get; set; }
    
        public MyClass()
        {
            IntRef = new MyIntImpl();
        }
    }
    
    // When starting up MongoDB
    private void RegisterClasses()
    {
        BsonClassMap.RegisterClassMap<MyIntImpl>();
    }
    

    クラスMyIntImplを追加する BsonClassMapに対して、Bsonをそのクラスタイプから逆シリアル化する方法を認識します。シリアル化する可​​能性のあるインターフェースを実装するクラスでマップを埋めておく必要があります。

    いくつかの参照リンク:高レベルから低レベルC#MongoDBシリアル化の概要SO投稿 ソリューションの概要を説明します。




    1. nginxを使用してredisキャッシュから直接コンテンツを提供する

    2. マングースは`$set`フィールドではなくドキュメントを上書きします

    3. Javaを介してMongoDBに一度に複数のドキュメントを挿入する方法

    4. ローカルホスト接続の問題を伴うAlamofire