1

ServiceStack の Funq を使用して ElasticClient を接続しようとしていますが、呼び出そうとすると null 参照例外が発生します。

これが私のセットアップです:

AppHost.cs で:

    var elasticSettings = new ConnectionSettings(new Uri("http://localhost:9200"), "listings");
    var elasticClient = new ElasticClient(elasticSettings);
    container.Register(elasticClient);

次に、私の ServiceInterface プロジェクトの ListingServices.cs クラスで:

       private ElasticClient Elastic; // also tried IElasticClient Elastic;


       public object Post(CreateListing request)
        {
            Listing newAd = new Listing();
            newAd = request.ConvertTo<Listing>();
            using (IDbConnection db = DbFactory.Open())
            {

                db.Save(newAd);
                Elastic.Index(newAd); // NULL REFERENCE EXCEPTION
            }
            return new CreateListingResponse { Result = true };
        }

ただし、Elastic は引き続き Null に設定されており、null 参照例外が発生します。

解決方法に関するアイデア。

4

1 に答える 1

5

プロパティ インジェクションはパブリック プロパティに対してのみ機能するため、プライベート フィールドを次のように変更します。

public ElasticClient Elastic { get; set; }

それ以外の場合、プライベート フィールドの場合は、代わりにコンストラクター インジェクションを使用する必要があります。

于 2016-01-20T05:33:40.817 に答える