小编Chr*_*org的帖子

如果没有触及底层集合,ReadOnlyCollection线程是否安全?

MSDN含糊地提到:

只要未修改集合,ReadOnlyCollection <(Of <(T>)>)可以同时支持多个读取器.即便如此,通过集合枚举本质上不是一个线程安全的过程.为了在枚举期间保证线程安全,您可以在整个枚举期间锁定集合.要允许多个线程访问集合以进行读写,您必须实现自己的同步.

以下公共静态集合是否可以安全地让多个线程进行迭代?如果没有,.NET内置的内容是否安全?我是否应该删除ReadOnlyCollection并为SomeStrings属性getter的每次访问创建一个私有集合的新副本?我知道如果多个线程试图锁定公共集合可能会出现死锁问题,但这是一个内部库,我无法理解为什么我们会想要.

public static class WellKnownStrings {

    public static readonly ICollection<string> SomeStrings;

    static WellKnownStrings()
    {
        Collection<string> someStrings = new Collection<string>();
        someStrings.Add("string1");
        someStrings.Add("string2");
        SomeStrings = new ReadOnlyCollection<string>(someStrings);
    }
}
Run Code Online (Sandbox Code Playgroud)

.net collections

17
推荐指数
3
解决办法
1287
查看次数

如何让div垂直填充表格单元格?

作为关于表格单元格中绝对定位的这个问题的后续内容,我正试图在Firefox中使用某些东西.再一次,我大概有95%,并且只有一件小事让我无法宣布胜利.使用以下示例标记:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>Test</title>
        <style type="text/css">
        table { width:500px; border-collapse:collapse}
        th, td { border:1px solid black; vertical-align: top; }
        th { width:100px; }
        td { background:#ccc; }
        .wrap { position:relative; height:100%; padding-bottom:1em; background:#aaa; }
        .manage { text-align:right; position:absolute; bottom:0; right:0; }
        p{ margin: 0 0 5px 0; }
        </style>
    </head>
    <body >
    <table>
        <tr>
                <th>Mauris tortor nulla, sagittis ut, faucibus eu, imperdiet ut, libero.</th>
                <td><div class="wrap"><p>Cras diam.</p><div …
Run Code Online (Sandbox Code Playgroud)

html css

13
推荐指数
1
解决办法
8560
查看次数

如何在GAE应用程序中最好地防止CSRF攻击?

那么,防止GAE应用程序的XSRF攻击的最佳方法是什么?想象一下:

  1. 任何人都可以看到用户的公共对象,并且在请求中使用db.Model id来确定要显示的对象.恶意用户现在拥有该ID.
  2. 恶意用户创建自己的对象并检出删除表单.他们现在知道如何删除具有特定id的对象.
  3. 恶意用户让无辜的用户为该用户的对象提交删除请求.

我可以添加哪些步骤来防止#3?请注意,当我说ID时,我正在使用密钥的实际ID部分.我的一个想法是在删除请求中使用完整的键值,但这会阻止恶意用户能够解决这个问题吗?据我所知,关键是模型类类型,应用程序ID和对象实例ID的某种组合,因此如果他们愿意,他们可能从id派生密钥.

还有其他想法吗?Jeff撰写了一篇关于此的文章,并提出了几个方法 - 一个隐藏的表单值,每个请求都会改变,以及通过js写入表单的cookie值.我不想排除非JavaScript用户,因此cookie解决方案不好 - 对于隐藏的表单值,我必须在显示可删除对象的每个请求上执行数据存储区写入 - 这不是可扩展的理想情况应用程序!

还有其他想法吗?

google-app-engine csrf

11
推荐指数
2
解决办法
4954
查看次数

IKVM和许可

我一直在研究IKVMing Apache的FOP项目,以便与我们的.NET应用程序一起使用.它是一种商业产品,在研究许可方面,由于使用了GNU Classpath,IKVM遇到了一些棘手的问题.从我所看到的,没有人可以肯定地说这些东西是否可用于商业产品.有没有人在商业产品中使用过IKVM或IKVM产品?这是我到目前为止所发现的:

IKVM许可证页面,其中指出一个DLL包含来自其他项目的代码,其许可证为GPLv2 + Classpath Exception

Saxon for .NET是使用IKVM生成的,但是在Apache许可下发布...

有人有这方面的经验吗?

.net java ikvm gnu-classpath

10
推荐指数
1
解决办法
1843
查看次数

如何在Firefox中将元素放置在其容器的底部?

我有一个表格单元格,我希望其中的div始终位于左下角.以下工作在IE和Safari罚款,但Firefox是定位div绝对的页面上,而不是电池(基于解决方案的解决方案代码中的位置).我已经使用和不使用DTD进行了测试,这使得Firefox处于Quirks模式和标准模式,并且都没有正常工作.我被困 - 任何想法?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>Test</title>
        <style type="text/css">
        table { width:500px; }
        th, td { vertical-align: top; border:1px solid black; position:relative; }
        th { width:100px; }
        .manage { text-align:right; position:absolute; bottom:0; right:0; }
        </style>
    </head>
    <body >
    <table>
        <tr>
            <th>Some info about the following thing and this is actually going to span a few lines</th>
            <td><p>A short blurb</p><div class="manage">Edit | Delete</div></td>
        </tr>
        <tr>
            <th>Some info …
Run Code Online (Sandbox Code Playgroud)

html css positioning

10
推荐指数
2
解决办法
1万
查看次数

如何让IIS加载我的WCF服务引用的本机DLL?

我有一个包含一些C#代码的WCF服务,它引用了一个C++/CLI dll,它引用了一些本机DLL.我在我的IIS应用程序的bin文件夹中包含所有必需的DLL,但是当IIS加载托管DLL时,它似乎将它们复制到深层目录,如:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\testwcf\73473be6\e625098c\assembly\dl3\aada7c33\85a7332b_2f9acc01
Run Code Online (Sandbox Code Playgroud)

它将每个托管DLL复制到其自己的目录并加载它.当它到达我的C++/CLI DLL时,它将它复制到上面的目录,然后它无法加载依赖项.如果我手动将所有本机DLL复制到此文件夹中,它将运行,但这不是一个很好的解决方案.

我的web.config是VS创建的库存,其端点是根据MSDN文章定义的.

<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    <services>
      <service name="WcfService.Service1">
        <endpoint address=""
                  binding="wsHttpBinding"
                  contract="WcfService.IService1" />
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />
      </service>
    </services>
  </system.serviceModel>
 <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

</configuration>
Run Code Online (Sandbox Code Playgroud)

如何自动获取这些DLL?

c++ iis wcf

9
推荐指数
1
解决办法
7703
查看次数

HTML中不间断的非空格

我有一个保龄球网络应用程序,允许非常详细的逐帧信息输入.它允许的一件事是跟踪每个球被击倒的针脚.要显示此信息,我将其看作是一个针脚架:

o o o o
 o o o
  o o
   o

图像用于表示引脚.所以,对于后排,我有4个img标签,然后是一个br标签.工作得很好......主要是.问题出在小型浏览器中,例如IEMobile.在这种情况下,如果表中可能有10或11列,并且每列中可能有一个引脚架,IE将尝试缩小列大小以适应屏幕,我最终得到类似的东西:

o o o
  o
o o o
 o o
  o

要么

o o
o o
o o
 o
o o
 o

结构是:

<tr>
    <td>
        <!-- some whitespace -->
        <div class="..."><img .../><img .../><img .../><img .../><br/>...</div>
        <!-- some whitespace -->
    </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

内部div中没有​​空格.如果您在常规浏览器中查看此页面,它应该显示正常.如果你在IEMobile中看它,它不会.

任何提示或建议?也许是某种  那实际上并没有增加空间?


跟进/概述

我收到并尝试了几个很好的建议,包括:

  • 在服务器上动态生成整个映像.很好的解决方案,但并不真正符合我的需要(托管在GAE上),还有比我想写的更多的代码.这些图像也可以在第一代之后缓存.
  • 使用CSS空白声明.基于良好标准的解决方案在IEMobile视图中惨遭失败.

我最终做了什么

挂着头,嘟something着什么

是的,这是正确的,div顶部的透明gif,大小与我需要的宽度相符.结束代码(简化)如下所示:

<table class="game">
    <tr class="analysis leave">
        <!-- ... -->
        <td> <div class="smallpins"><img class="spacer" src="http://seasrc.th.net/gif/cleardot.gif" /><br/><img src="/img/pinsmall.gif"/><img src="/img/nopinsmall.gif"/><img …
Run Code Online (Sandbox Code Playgroud)

html css internet-explorer pocketpc line-breaks

8
推荐指数
1
解决办法
1万
查看次数

检查节点集是否包含XSLT中的任何值

我需要一些XSLT语法的帮助.这是我的场景,我有一个XML文件,需要转换为XML文件的不同外观,我有几个部分,如果特定节点集不包含任何值,则不应处理整个部分.

以下是XML的示例:

<Dates>
    <Date>
        <VALUE1></VALUE1>
        <VALUE2></VALUE2>
        <VALUE3></VALUE3>
        <VALUE4></VALUE4>
        <VALUE5>3333</VALUE5>
    </Date>
    <Date>
        <VALUE1>AAAA</VALUE1>
        <VALUE2></VALUE2>
        <VALUE3>JJJJ</VALUE3>
        <VALUE4></VALUE4>
        <VALUE5>12345</VALUE5>
    </Date>
</Dates>
Run Code Online (Sandbox Code Playgroud)

xml的截图

这是我的XSLT,if语句不能正常工作

<xsl:for-each select="Level1/Level2/Level3">
    <xsl:if test="@VALUE1!=''">                    
    <MyDates>               
            <value_1>
                <xsl:value-of select="VALUE1"/> 
            </value_1>
            <value_2>
                <xsl:value-of select="VALUE2"/> 
            </value_2>
            <value_3>
                <xsl:value-of select="VALUE3"/> 
            </value_3>
            <value_4>
                <xsl:value-of select="VALUE4"/> 
            </value_4>       
    </MyDates>
    </xsl:if>   
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)

所以你可以看到我基本上希望所有节点(VALUE1,VALUE2,VALUE3等)都有值,否则不处理并转到下一节

(如果你看不到XML的想法,我也做了一个屏幕截图)

xml xslt

7
推荐指数
1
解决办法
4万
查看次数

为什么.NET不会从Web服务反序列化我的原始数组?

救命!我有一个由C#应用程序使用的Axis Web服务.一切都很好,除了长值数组总是遇到[0,0,0,0] - 正确的长度,但值不反序列化.我尝试过其他原语(整数,双打),同样的事情发生了.我该怎么办?我不想改变我的服务的语义.

.net java service primitive

5
推荐指数
1
解决办法
6231
查看次数

你用什么样的异常消息?

在编写抛出我在这里询问的异常的代码时,我走到了我的消息的末尾,并在标点符号处停了下来.我意识到几乎所有我抛出的异常消息都可能有!某处.

throw new InvalidOperationException("I'm not configured correctly!");
throw new ArgumentNullException("You passed a null!");
throw new StupidUserException("You can't divide by 0!  What the hell were you THINKING???  DUMMY!!!!!");
Run Code Online (Sandbox Code Playgroud)

在编写异常消息时你会采取什么样的语气?在浏览日志时,您是否发现任何特定类型的消息实际上比另一种更有帮助?

.net c# logging exception throw

5
推荐指数
3
解决办法
797
查看次数