Можете ли вы поставить «использование» в Web.Config? - PullRequest
2 голосов
/ 06 августа 2010

Я, как правило, делаю много папок, и когда я делаю OO, я помещаю Модели в папку с именем Models, под которой у меня BLL, DAL, OBJ

Вместо того, чтобы писать в начало всех моих файлов using MyApp.Models; Я хотел бы поместить это в Web.Config, если это возможно.

Я новичок в .net, поэтому я не уверен, можете ли вы или даже если это хорошая идея.

Ответы [ 3 ]

2 голосов
/ 06 августа 2010

Это невозможно.

Имена классов должны быть разрешены во время компиляции, и web.config может измениться в любое время после развертывания.

2 голосов
/ 06 августа 2010

Я не верю, что есть какой-либо способ сделать это в файле конфигурации для файлов C #.

Это не совсем то, что вы просите, но самое близкое к этому то, что выможет зарегистрировать пространства имен в файле web.config, которые затем можно будет использовать в файлах разметки ascx / aspx, как упомянул Стивен.Ниже приведен пример:

<configuration>
    <system.web>
        <pages>
            <namespaces>
                <add namespace="System.Web.Mvc"/>
                <add namespace="System.Web.Mvc.Ajax"/>
                <add namespace="System.Web.Mvc.Html"/>
                <add namespace="System.Web.Routing"/>
                <add namespace="System.Linq"/>
                <add namespace="System.Collections.Generic"/>
                <!-- Add your own namespaces here -->
            </namespaces>
        </pages>
    </system.web>
</configuration>

РЕДАКТИРОВАТЬ: добавлено еще одно предложение ниже:

Если у вас было несколько операторов использования, которые должны были быть включены в большинство ваших файлов .cs, то лучше всегоЯ мог бы предложить, чтобы либо А) было удобно использовать операторы, где вы можете просто скопировать / вставить их по мере необходимости, либо Б) создать фрагмент кода C #, как показано в примере ниже:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>using MyApp</Title>
            <Shortcut>usingmyapp</Shortcut>
            <Description>Code snippet for common using statements with MyApp</Description>
            <Author></Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Code Language="csharp">
                <![CDATA[using MyApp.Common;
using MyApp.Common.Extensions;
using MyApp.Domain;
using MyApp.Models;
// *** add whatever using statements you want here ***
$end$]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

После того, как выдобавьте этот файл в соответствующее расположение (... \ Мои документы \ Visual Studio 2008 \ Фрагменты кода \ Visual C # \ Фрагменты моего кода), после чего вы просто сможете начать печатать "usingmyapp" (или все, что вы положили в<Shortcut> элемент) в том месте, где находится ваш файл .cs, где вы хотите использовать операторы using;intellisense должен распознать его и автоматически заполнить для вас, вставив содержимое <Code> фрагмента кода.

Лично я не беспокоюсь о том, чтобы сделать что-то подобное;Я не люблю добавлять кучу операторов using в мой файл, если некоторые из них на самом деле не используются в этом файле.Кроме того, я думаю, что массовое добавление нескольких операторов using может привести к путанице в неоднозначных конфликтах имен, если вы начнете использовать имя класса, которое появляется в нескольких пространствах имен.Но я думаю, что это всего лишь личное предпочтение;если вы хотите сделать это, продолжайте.

2 голосов
/ 06 августа 2010

Можно зарегистрировать сборки и пространства имен для использования в вашей разметке, но не для использования в вашем коде за файлами кода.VB.NET поддерживает это на уровне проекта, но мне никогда не нравилась эта функция, потому что она делает менее явным то, что вы используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...