ApplicationContext.电流变为零



我在stack-over-flow中发现了和这里相同的问题,并尝试了相同的想法,但我仍然收到ApplicationContext。当前为null。

我正在制作web服务,需要从Umbraco数据库中提取几条数据。我不需要任何Umbraco的观点或任何其他东西。我是Umbraco Core库的新手。

我所做的是在下面获得我的新网络服务项目的参考

umbraco.dll
Umbraco.Core.dll
umbraco.DataLayer.dll
umbraco.editorControls.dll
umbraco.MacroEngines.dll
umbraco.providers.dll
Umbraco.Web.UI.dll
umbraco.XmlSerializers.dll
UmbracoExamine.dll

下面是我接收ApplicationContext的类代码。电流为空

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Umbraco.Web.Mvc;
using umbraco.MacroEngines;
using Umbraco.Web;
using Umbraco.Web.WebApi;
using umbraco.NodeFactory;
using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Core.Services;
using umbraco.cms.businesslogic.media;
using umbraco.BusinessLogic;
using System.Configuration;
using log4net;
using System.Reflection;
using Umbraco.Core.Logging;
using System.Web.Optimization;
using System.Web.Http;
using System.Data.SqlClient;
using System.Data;
using System.Web.Script.Serialization;
using System.Collections;
using System.Collections.Specialized;
using System.Web.UI.WebControls;
using Stripe;
using System.Web.UI;
using System.Text.RegularExpressions;
using System.Web.Configuration;
using System.Web.Security;
using Newtonsoft.Json;
using System.Net.Mail;
using System.Text;
using System.Net;
using System.IO;
public class RegisterUserController : UmbracoApiController
{
    public static string UmbracoConnectionString = ConfigurationManager.ConnectionStrings["umbracoDbDSN"].ConnectionString;
    public static IMemberService memberService = ApplicationContext.Current.Services.MemberService;// Here I am getting ApplicationContext.Current as null
}

但我正在调用这个类,我正在获取ApplicationContext。当前为null。因此,我在这个类中有许多方法可以在memberService上工作,但由于这个null引用,它们不起作用。甚至其他不使用成员服务的方法也不会被调用。

对我来说,下面的代码似乎可以工作。

public class TestApiController : UmbracoApiController
{
    private static string _umbracoConnectionString = ConfigurationManager.ConnectionStrings["umbracoDbDSN"].ConnectionString;
    private static IMemberService _memberService = global::Umbraco.Core.ApplicationContext.Current.Services.MemberService;
    public int GetTest()
    {
        var memberCount = _memberService.Count();
        return memberCount;
    }
}

如果上面的代码不适用于您,例如AJAX,请尝试下面的代码:

public class TestApiController : UmbracoApiController
{
    public int GetTest()
    {
        var ms = Services.MemberService;
        return ms.Count();
    }
}

相关内容

  • 没有找到相关文章

最新更新