asp.net объявляет глобальную переменную / класс в области приложения 3 способами. Какой из них лучше? - PullRequest
1 голос
/ 03 марта 2010

Я ищу различия между этими тремя способами использования статического класса в области приложения asp.net. Будут ли все это указывать на один и тот же класс? Какой из них предпочтительнее> объект <определен декларативно внутри global.asax или статического класса? </p>

Примеры:

<object runat="server" scope="application" class="classname" ID="objID"></object>

VS

public static class classname {}

VS

Application("a") = new classname();

1 Ответ

0 голосов
/ 03 марта 2010

Я предполагаю, что ваше редактирование означает:

В global.asax.cs:

Application["a"] = new classname();

В classname.cs

public static class classname {}

В этом случае они во многом совпадают с большим исключением, что (classname)Application["a"] будет ссылаться на экземпляр класса classname, тогда как во втором примере любые вызовы classname.MethodNameGoesHere() будут вызов статических методов класса classname.

Я бы пошел на статические методы статического класса, а не на методы экземпляра, хранящегося в Application, хотя я бы тогда очень тщательно подумал о том, что делают методы в classname, поскольку их можно вызывать одновременно столько, сколько люди могут получить доступ к сайту сразу.

...