Единственный способ, которым я знаю, это добавить сгенерированный файл, чтобы иметь зависимость от файла, за которым вы хотите его скрыть, - в файле proj.
Например:
<ItemGroup>
<Compile Include="test.cs" />
<Compile Include="test.g.i.cs">
<DependentUpon>test.cs</DependentUpon>
</Compile>
</ItemGroup>
Если вы удалили элемент DependentUpon, то этот файл отображается рядом с другим файлом, а не позади него ... как ваш генератор добавляет файлы? Можете ли вы рассказать нам об этом сценарии использования и о том, как бы вы хотели, чтобы он работал?
Вот более короткий и эффективный метод.
def parameterize(params)
URI.escape(params.collect{|k,v| "#{k}=#{v}"}.join('&'))
end
Вы можете сделать это немного проще, используя collect
:
def do_it(params)
params.collect do |key,val|
"#{CGI.escape(key.to_s)}=#{CGI.escape(val)}"
end.join('&')
end
Я не знаю, насколько еще вы можете упростить это, чем это. Также обратите внимание, что CGI.escape
преобразует пробелы в +
, а не в % 20
. Если вам действительно нужен % 20
, используйте вместо него URI.escape
(очевидно, вам придется потребовать 'uri'
).
Вам, вероятно, следует попробовать следовать
def to_query(key)
"#{CGI.escape(key.to_s)}=#{CGI.escape(to_param.to_s)}"
end
, скопирован из рельсовая документация . Не забудьте прочитать комментарии над определением метода.
Я согласен, что это очень "нерубиновый" код. Хотя это не намного лучше, я думаю, что Requestify () может быть тем, что вам нужно:
http://www.koders.com/ruby/fid4B642EE4A494A744ACC920A1BE72CFE66D1D2B97.aspx?s=cgi#L291