我正在向StringDictionary添加项目,并且可能会出现重复的密钥.这当然会抛出异常.
如果重复的可能性非常低(即很少发生),我最好使用Try Catch块并使其处理不当,或者在添加每个条目之前是否应该总是进行.ContainsKey检查?
我假设如果重复密钥的可能性很高,那么允许异常将是一个糟糕的决定,因为它们很昂贵.
思考?
编辑
我在泛型字典中使用了反射器,并为ContainsKey和TryGetValue找到了以下内容,因为两者都在下面提到.
public bool TryGetValue(TKey key, out TValue value)
{
int index = this.FindEntry(key);
if (index >= 0)
{
value = this.entries[index].value;
return true;
}
value = default(TValue);
return false;
}
Run Code Online (Sandbox Code Playgroud)
和
public bool ContainsKey(TKey key)
{
return (this.FindEntry(key) >= 0);
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么,或者TryGetValue比ContainsKey做更多的工作?
我很欣赏这些回复,对于我目前的目的,我将继续做一个ContainsKey调用,因为集合很小,而且代码更具可读性.
我有一个使用Web服务的现有项目.一个是作为服务引用添加的,另一个是作为Web引用添加的.我不记得为什么一个被添加为网络参考,但也许是因为我无法让它工作!
一个Web服务的现有服务引用工作正常,因此它不是.net版本问题.
我可以成功为第二个Web服务创建服务引用,但没有一个方法可用..wsdl显示模式,但Reference.vb仅显示命名空间,而不显示任何方法.
为了澄清,这些是两个不同的第三方Web服务提供商.
我们希望转到服务参考,以便我们可以更好地控制配置,因为我们遇到了各种超时问题.
有没有人遇到过这个?
编辑
地址上有两项服务是否重要?
编辑
我正在使用.net 3.5和VS2008.
alt text http://img139.imageshack.us/img139/719/addservicereference.gif
我们正在评估Sencha Touch的移动开发.有没有人用过这个(我意识到它还处于测试阶段),如果有的话,它的优点/缺点是什么?它与替代品相比如何?
这当然听起来很引人注目.
谢谢!
谷歌地图标记对象(google.maps.Marker)具有title属性,因此当用户将鼠标移到标记上时,会显示一个简单的工具提示.
折线上没有title属性(google.maps.Polyline).有没有办法可以做到这一点/在V3中模拟这个?我可以在V2中做到这一点,我找不到V3的例子.
我正在尝试将数据从Web应用程序导出到excel,但是有一个请求要在电子表格的顶部包含公司的徽标.我创建excel的常规方法是在excel中创建一个电子表格并将其另存为Xml电子表格(Excel 2003).这允许我在代码中构建xml.
但是,当试图将excel工作表保存为xml工作表时,我会收到警告,图像将丢失.
那么,是否可以从我的应用程序中嵌入图像?我试过base64,但那没用.
<Data ss:Type="Base64">base64string here...</Data> 无效
Html也没有被解释.这可能吗?
Excel 2003 +是目标.
我必须实现一个自定义的HttpModule来处理Sharepoint中的404错误.
它侦听PreSendRequestContent事件,并查找404状态代码.如果找到一个,它会执行TransferRequest.
void App_PreSendRequestContent(object sender, EventArgs e)
{
HttpResponse res = App.Response;
HttpRequest req = App.Request;
if (res.StatusCode == 404 && !req.Url.AbsolutePath.Equals(PageNotFoundUrl, StringComparison.InvariantCultureIgnoreCase))
{
App.Server.TransferRequest(PageNotFoundUrl);
}
}
Run Code Online (Sandbox Code Playgroud)
这工作得很好,但我注意到在Fiddler中该页面显示了200状态代码,即使原始请求是404.这对搜索引擎也不好.
这是TransferRequest的预期行为吗?我可以以某种方式维护404状态代码吗?或者,我是否会更好地使用旧的老式Server.Transfer?
更新
我在sharepoint环境之外尝试了这个,并且Server.TransferRequest请求确实提供了200状态代码,删除了404.Server.Transfer不起作用,因为我不认为它可以给出管道.
更新2
感谢下面的答案,我添加了以下内容:
void App_PostRequestHandlerExecute(object sender, EventArgs e)
{
HttpResponse res = App.Response;
HttpRequest req = App.Request;
if (req.Url.AbsolutePath.Equals(PageNotFoundUrl, StringComparison.InvariantCultureIgnoreCase))
{
res.StatusCode = 404;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一些自定义控件作为服务器控件项目创建.我做了一些更改,所以我只是将类添加到现有的Web应用程序项目中,这样我就可以在一个地方进行操作.此Web应用程序项目编译为一个用于多个Web项目的DLL.
当我构建Web应用程序项目并将dll放在不同网站的bin中时,当我使用该控件时,我收到以下错误:
未知的服务器标签'CustomControls:RadioButtonListForGrid'
如果我将自定义控件类添加到我的网站的app_code文件夹,它工作正常.我使用了对象浏览器并确认这些类在dll中.
我错过了一些明显的东西吗?我是否必须将这些作为服务器控制项目保留并使用ILmerge组合dll?
编辑
事实证明我需要添加程序集名称.事实证明,组件没有被命名为我认为的那样.我猜我应该检查一下.哎呀.
我正在构建一个用户可以上传图片的应用程序.我需要的只是让用户上传初始照片,并管理kml的标题,描述,标签和空间数据.上传视频的能力会很棒.
这些图片将用作自定义谷歌地图应用程序的一部分.
只要满足上述要求,我对apis与哪种服务更好的有效性更感兴趣.
我已经读过Flickr api很棒,但是我正在寻找那些与两个apis合作的人的第一手信息.
另一种选择当然是在应用程序内管理这些数据.
我正在使用.net和jquery.
谢谢!
我正在尝试习惯II7,与IIS6合作已有一段时间了.
在IIS 6中,我设置<identity impersonate="true"/>了web.config,并确保我将正确的NTFS权限应用于IUSR_ [MACHINENAME]帐户,如果文件夹需要超过读取权限.
在IIS 7中,我无法复制此设置而无需申请太多权限.
如果我<identity impersonate="true"/>在IIS 7中使用,Environment.Username告诉我,我确实冒充IUSR帐户,这是新的等价物.但是,如果我使用表单身份验证登录网站的管理部分,则会以不同于我期望的方式进行模拟.
在应用程序池中设置NetworkService:
在应用程序池中设置LocalService:
如果我给IIS_IUSRS帐户NTFS权限我可以使事情正常,但这似乎很奇怪.我怎么能一直冒充IUSR账户?或者,我是否应该将IISFS权限授予IIS_IUSRS?
我很欣赏IIS7中这一变化的一个很好的解释 - 我已经搜索过,无法通过表单身份验证找到这种用法的解释.
我们的数据访问层使用命令对象与sql server通信.
在大多数情况下,我已将字段大小(与sql server中的列大小相匹配)硬编码到命令参数构建器中.
如:
SqlParameter param = new SqlParameter("@name", NVarChar, 4000);
Run Code Online (Sandbox Code Playgroud)
在这里指定一个值(在这个例子中为4000)而不是将其保留为0有什么好处?当列大小更改时必须重新编译时会很痛苦.
.net ×4
asp.net ×2
c# ×2
ado.net ×1
android ×1
api ×1
dictionary ×1
excel ×1
extjs ×1
flickr ×1
google-maps ×1
httpmodule ×1
iis-7 ×1
iphone ×1
javascript ×1
picasa ×1
sencha-touch ×1
sharepoint ×1
sql-server ×1
web-services ×1
xml ×1