在大学我们有VS 2005,它有一些重构工具,如重命名,提取方法,提取类等.
我决定从MSDN下载VS 2008,它只有重命名和提取方法,如何激活另一个?
编辑:我已经下载了Microsoft VS 2008 C#Express Edition.
我从脚本用户获取变量的名称作为第一个参数,并将所述变量的值回显给控制台:
#!/bin/bash
variablename=$1
echo "The value of $variablename is: " ${!variablename}
Run Code Online (Sandbox Code Playgroud)
这很棒!
我无法工作的是,如果我想将该变量更改为用户的第二个参数的值.语法错误的示例是:
#!/bin/bash
variablename=$1
echo "The value of $variablename is: " ${!variablename}
echo "I will now try to change the value into $2."
(!variablename}=$2
# The above line generates: {!variablename}=2: command not found
Run Code Online (Sandbox Code Playgroud)
换句话说:如果可能,我如何从用户获取变量名称并读取(已经解决)并写入所述变量?
我有Default.aspx页面,它继承自BasePage.cs,它继承自System.Web.UI.Page.BasePage是我在加载时每页必须做的一些常见事情.
在BasePage中,假设我正在检查X.如果X = 1,那么我将立即重定向到我的"Discontinued.aspx"页面并停止执行BasePage.如果我发现X = 1,我说:
HttpContext.Current.Response.Redirect("Discontinued.aspx",true);
我希望重定向停止执行BasePage并立即跳出 - 因此上面语句中的"true" - 应该停止执行当前页面,据我所知.问题是,它没有.我期待重定向抛出"线程中止异常".
当我在调试模式下运行时,它会逐步调整,就好像它不仅仅是重定向和离开一样.
但重定向仍然开始 - 一旦我完成了其他的BasePage,"Discontinued"页面就会因重定向而开始加载.
有没有理由我的Redirect不会杀死BasePage的执行?
当我使用window.open()打开新窗口时,如何保持父页面的滚动位置?父页面返回页面顶部.
这是我目前的代码:
<a href="#" onclick="javascript: window.open('myPage.aspx');">
Open New Window
</a>
Run Code Online (Sandbox Code Playgroud) 我正在处理游戏对话文件(玩家和不可玩角色之间的对话),其中对话选择及其结果取决于某些条件并导致某些动作.现在,我可以编写一个简单的解析器来处理某种语言来指定前置条件和后置条件,但是我的一个朋友建议使用XML.条件可以存储为对话元素的属性,选择和动作是内部元素.然后我使用eval函数来解析这些条件和语句(我使用Ruby来制作这个游戏).为了使这种方法更简单,我可以编写一个简单的GUI来操作这些文件而不必担心丑陋的XML.
但它让我觉得在XML文件中处理逻辑是一个奇怪的选择.我的理解是XML文件用于存储和交换数据,我总是阅读关于人们如何过度使用XML以获取其不适合的各种事物的咆哮.我的朋友们回应说明XML是如何用于所有事情的,包括XHTML和这种子弹描述语言(这也说明了一些逻辑).
说实话,使用XML会为我简化很多事情.编写解析器可能既痛苦又耗时,而且我的要求通常很简单.但它真的没问题,或者我会后悔这样的选择吗?
对于对细节感兴趣的人,这是基本对话交换在XML文件中的样子:
<dialogue id="101" condition="!npc.carsFixed">
<message>Man, fix my car!</message>
<choices>
<choice condition="hero.carFixingSkill > 5" priority="7" id="Sure!">
<command>hero.carFixingSkills += 1</command>
<command>npc.carFixed = true</command>
<command>hero.playSmokeAnimation()</command>
<command>nextDialogue = 104</command>
</choice>
<choice condition="hero.carFixingSkill <= 5" id="I can't...">
<command>nextDialogue = 105</command>
</choice>
<choice id="Fix it yourself">
<command>npc.likesHero -= 1</command>
</choice>
</choices>
</dialogue>
Run Code Online (Sandbox Code Playgroud)
如果用Ruby编写相应的代码将是:
def dialogue101
if !npc.carsFixed
showMessage("Man, fix my car!")
choices = []
if hero.carFixingSkill > 5
choices.push(Choice.new("Sure!", 7))
else
choices.push(Choice.new("I can't"))
end
choices.push(Choice.new("Fix it yourself"))
choices = selectTopPriority(choices) if …Run Code Online (Sandbox Code Playgroud) 我有一个显示一些项目的ListBox,在某些模式中,我在其顶部"标记"了一种水印.我用包含不透明度为0.5的TextBlock的边框完成了这个.这一切都很好用.
但是,我仍然希望用户能够单击ListBox中的项目,但如果我单击"标记",它显然会吃掉点击事件,而ListBox则看不到它们.
我该怎么做才能防止这种情况发生?(即允许ListBox查看Click事件)
谢谢,
克雷格
我从用户输入中获取一个字符串,并将其在空格上(使用\ w)拆分为字符串数组.然后我遍历数组,并附加where子句的一部分,如下所示:
query += " AND ( "
+ "field1 LIKE '%" + searchStrings[i] +"%' "
+ " OR field2 LIKE '%" + searchStrings[i] +"%' "
+ " OR field3 LIKE '%" + searchStrings[i] +"%' "
+ ") ";
Run Code Online (Sandbox Code Playgroud)
我觉得这很危险,因为我将用户输入附加到我的查询中.但是,我知道在任何搜索字符串中都没有任何空格,因为我将初始输入拆分为空格.
是否有可能通过SQL注入攻击它?给予Robert');DROP TABLE students;--实际上不会丢弃任何东西,因为那里需要有空格.在那个例子中,它表现不正常,但不会造成任何损害.
有没有更多打击SQL注入经验的人可以帮我解决这个问题,还是让我放松心情?
谢谢!
编辑:
哇,这是很多很棒的投入.谢谢大家的回复.我将调查全文搜索,并至少参数化我的查询.
只是这样我可以更好地理解这个问题,如果所有空格和单引号都被转义,是否可以注入?
我们有一个解决方案,我们使用Windows服务选择消息.
Windows服务每隔2分钟触发一次并检索MSMQ消息以将其传递给Web服务.
刚刚开始在我们的C#.Net应用程序上出现一堆错误,似乎无缘无故地发生了.SqlDataReader对象上的System.IndexOutOfRangeException之类的东西,应该返回一个索引并且现在已经返回了一段时间.
无论如何,我看了一下任务管理器,看到sqlservr.exe运行在大约1,500,000 K Mem Usage.我绝不是一名DBA,但是对于使用Intel Xeon 3.33Ghz和4GB内存的Win Server 2003 R2企业版而言,大量使用内存对我来说是错误的.所以我重新启动了SQL Server实例.重启后,一切恢复正常.错误突然停止发生.那么大的主内存使用量最终会导致错误吗?
另外,我做了一个快速谷歌的高内存使用mssql.我发现如果保留默认设置; SQL Server可以增长到那么大.此外,通过使用SQL Server中的配置选项找到了有关如何调整内存使用情况的 MS链接.
现在的问题是...... SQL Server应该限制多少主内存?