У меня есть код .net framework 4.5, который я бы хотел перенести в ядро .net:
[DataContract]
public class RouteData
{
public RouteData()
{
Request = new RequestRouteData();
}
[DataMember] public RequestRouteData Request { get; set; }
}
public class RequestRouteData : BaseRouteData
{
[DataMember]
public string AddUploadOtherFileStep5
{
get { return UrlHelper.Action("AddOtherFields", "Request"); }
}
}
public class BaseRouteData
{
protected UrlHelper UrlHelper { get; set; }
protected BaseRouteData()
{
UrlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
}
}
Итак, я обнаружил, что для получения текущего контекста мне нужно использовать IActionContextAccessor
bu Я изо всех сил пытаюсь получить эквивалентные методы для этого.
Вот что я пробовал до сих пор:
[DataContract]
public class RouteData
{
public RouteData()
{
Request = new RequestRouteData();
}
[DataMember] public RequestRouteData Request { get; set; }
}
public class RequestRouteData : BaseRouteData()
{
[DataMember] public string AddOtherFields => UrlHelper.Action(What to put here?);
}
public class BaseRouteData
{
protected UrlHelper UrlHelper { get; }
protected BaseRouteData(IActionContextAccessor actionContext, IUrlHelperFactory urlHelperFactory)
{
UrlHelper = (UrlHelper) urlHelperFactory.GetUrlHelper(actionContext.ActionContext);
}
}
РЕДАКТИРОВАТЬ 3:
public class JavascriptData
{
public JavascriptData()
{
Routes = new RouteData();
}
[DataMember] public RouteData Routes { get; set; }
#region ScriptFactory
public static string ScriptFactory()
{
var serializerSettings = new JsonSerializerSettings();
serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
var script = new StringBuilder();
JavascriptData appData = new JavascriptData();
var text = JsonConvert.SerializeObject(appData, Formatting.Indented, serializerSettings);
script.AppendFormat("var appData={0}", text);
return script.ToString();
}
#endregion
}
Я правильно иду? Потому что я не знаю, что делать с методом UrlHelper.Action()
, чтобы получить тот же результат, что и в .net 4.5 ...