Спасибо Raimond. Я также устал для наблюдения очевидного. @Keeney: Да контекст является всегда пустым. Raimond указал почему. Спасибо так или иначе, я не видел, почему также:-)
Моим текущим рабочим решением (хотя не, что я хотел) является Атрибут, который я использую для украшения всех моих действий контроллера. Вот реализация:
public class MasterPageDataAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
IUserRepository _repUser = RepositoryFactory.getUserRepository();
IPrincipal siteUser = filterContext.Controller.ControllerContext.HttpContext.User;
User loggedInUser = null;
if (siteUser == null || siteUser.Identity.Name == null)
{
//do nothing
}
else
{
loggedInUser = _repUser.findUserById(siteUser.Identity.Name);
}
filterContext.Controller.ViewData["LoggedInUser"] = loggedInUser ?? new User { Nickname = "Guest" };
}
}
я буду изучать, как выполнить тот код способом, который следует за принципом DRY, начиная с использования атрибутов для того определенно средства, повторяющие себя. Возможно, своего рода перехватчик ( интересная идея ) или рычаг мог бы помочь.
Аплодисменты для этого.
Когда я работал над OAuth с Календарем Google, мне пришлось добавить этот фильтр в активность, которую я хотел получить обратный вызов:
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:scheme="yourapp" android:host="goog"></data>
</intent-filter>
Когда браузер вызывал URL yourapp://goog
, он вернусь к моей деятельности.
Это решение для меня. Спасибо @DanO
<intent-filter>
<data android:scheme="yourcustomname"/>
<data android:host="*"/>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
Вы уже добавили категорию в свой фильтр намерений:
<category android:name="android.intent.category.BROWSABLE" />