Вместо того, чтобы использовать глобальное пространство имен, вы должны назначить пространство имен вашему классу, например, если ваше приложение называется «MyApplication», вы можете создать папку с именем «Reports», а затем создать там свой класс следующим образом:
namespace MyApplication.Reports
{
public class Report
{
public string CheckIfReportAccess(string name)
{
//logic here
}
}
}
Если вы хотите использовать его в коде своей страницы, вы можете сделать это, просто ссылаясь на пространство имен, как вы делаете сейчас:
using MyApplication.Reports;
[...]
protected void Page_Load(object sender, EventArgs e)
{
Report report = new Report();
report.CheckIfReportAccess("SomeReport");
}
Если вы хотите сделать этокласс, доступный для ваших представлений, у вас есть две опции:
Объявите его в своем Web.config, используя пространство имен:
<pages>
<namespaces>
<add namespace="MyApplication.Reports"/>
</namespaces>
</pages>
Затем вы можете получить доступ ко всем классам в этом пространстве имен в ваших представлениях напрямую:
<% Report report = new Report(); %>
<% if(report.CheckIfReportAccess("SomeReport") == "1") { %>
<div>
SomeReport has access
</div>
<% } %>
Импортируйте его прямо в вашем представлении:
<%@ Import Namespace="MyApplication.Reports" %>
Редактировать
Если вы не можете применить пространства имен, как описановыше, и вам нужно использовать глобальное пространство имен для всех классов, вы можете рассмотреть возможность изменения имени класса, если у вас есть проблемы с ним, например, вместо Report
попробуйте с MyReport
и посмотрите, решит ли это проблему.
Редактировать 2
Если вы не можете изменить существующий класс из-за ограничений проекта (что я нахожу странным в любом случае), вы всегда можете создать новый класс с нужным вам пространством имен и именем, иунаследуйте от проблемного класса:
namespace MyApplication.Reports
{
public class MyReport : Report
{
}
}
Затем используйте «MyReport» в вашем представлении и не забудьте зарегистрировать пространство имен в вашем Web.Config, как описано выше.