CreateInstanceFromVirtualPath
не возвращает объект, который реализует IProfileHandler
.
Edit:
Вы пытаетесь бросить обратный объект в IProfileHandler
. Это означает, что вы говорите «Ok Compiler, я знаю, что этот метод возвращает object
, но я обещаю, что это уже экземпляр, который реализует IProfileHandler
». Поскольку метод CreateInstanceFromVirtualPath
был создан без знания вашего пользовательского класса, у него нет способа вернуть объект, который гарантированно будет следовать контракту, установленному вашим пользовательским интерфейсом (имеет свойство int MemberId
). Поскольку объект не может быть правильно установлен, и вы используете оператор as
, вы получаете нуль. Если бы вы сделали обычный бросок, то было бы выброшено InvalidCastException
.
Я не уверен, что я соответствующий человек, чтобы ответить, как вы его реализуете, так как я никогда не работал с HttpHandlers, но, согласно this documentation, похоже, что вы создали бы класс, который реализует IHttpHandler, измените ваш web.config, чтобы использовать новый обработчик, а затем перевести его в новый класс. Может быть что-то вроде
public class ProfileHttpHandler: IHttpHandler
{
public int MemberId { get; set; }
public bool IsReusable
{
get
{
// return value here
}
}
public void ProcessRequest(HttpContext context)
{
// custom request processing here
}
}
с записью web.config из
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="*.yourIntendedExtension" type="FQN, Assembly" />
</httpHandlers>
</system.web>
</configuration>
Какое значение null? отображение или запросКонтекст? Если это отображение, когда вы отлаживаете менеджер сборки, возвращающий объект, но это просто не тип IProfileHandler? – Vadim
display is null, Он возвращает null, когда я выполняю листинг в iprofilehandler, он возвращает указанный объект, когда я выполняю листинг в ihttphandler – user510336