Как инициализировать umbraco MemberService в опубликованной модели? - PullRequest
0 голосов
/ 18 июня 2019

Я использую Umbraco 7.6 и ModelsBuilder

Я пытаюсь расширить мою модель CustomMember и добавить некоторые пользовательские свойства.Я хочу получить IMember в собственность.Для этого мне нужно инициализировать MemberService, чтобы использовать GetById() метод.

Как инициализировать MemberService в частичном CustomMember?

public partial class CustomMember 
{
    private readonly MemberService _memberService;

    public CustomMember(IPublishedContent content) : base(content) // this is not valid as the contructor already exists in the umbraco generated partial model
    {
        this._memberService = (MemberService)ApplicationContext.Current.Services.MemberService; // This is coming null
    }

    public IMember Member
    {
        get
        {
            return _memberService.GetById(this.Id);
        }
    }
}

1 Ответ

1 голос
/ 18 июня 2019

Используйте коллекцию ApplicationContext.Current.Services для доступа к одноэлементному членству MemberService.

https://our.umbraco.com/Documentation/Reference/Management/Services/MemberService/Index

В частности:

MemberService доступен через ApplicationContext, но если вы используете SurfaceController или UmbracoUserControl, тогда MemberService доступен через локальное свойство Services.

Вы также должны взглянуть на эту статью:

https://our.umbraco.com/documentation/Reference/Common-Pitfalls

...