Я тестировал следующий код, чтобы попробовать и как работает ActionFilterAttributes:
public class TestAttribute : ActionFilterAttribute
{
private string _privateValue;
public string PublicValue { get; set; }
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
_privateValue = DateTime.Now.ToString();
base.OnActionExecuting(filterContext);
}
}
Когда я запускаю вышеуказанный код в двух параллельных потоках, поле _privateValue путается. Однако свойство PublicValue не путается.
Мне кажется, что ActionFilterAttributes повторно используются в потоках, но эти новые экземпляры создаются в зависимости от констант, заданных для публичных свойств. Правильно ли я?
Где я могу найти информацию об этом?