小编noc*_*ier的帖子

使用Regex.Match()的C#Regex验证规则

我写了一个正则表达式,它应该使用以下规则验证字符串:

  1. 前四个字符必须是字母数字.
  2. 字母字符后跟6或7个数字值,总长度为10或11.

所以如果字符串有效,字符串应如下所示:

CCCCNNNNNN或CCCCNNNNNNN

C是任何字符,N是数字.

我的表达写道: @"^[0-9A-Za-z]{3}[0-9A-Za-z-]\d{0,21}$";

我的正则表达式匹配代码如下所示:

var cc1 = "FOOBAR"; // should fail.
var cc2 = "AAAA1111111111"; // should succeed

var regex = @"^[0-9A-Za-z]{3}[0-9A-Za-z-]\d{0,21}$";

Match match = Regex.Match( cc1, regex, RegexOptions.IgnoreCase );

if ( cc1 != string.Empty && match.Success )
{
     //"The Number must start with 4 letters and contain no numbers.",
     Error = SeverityType.Error
}
Run Code Online (Sandbox Code Playgroud)

我希望有人可以看看我的表达,并提供一些改进的反馈,以产生有效的匹配.

我也.Match()正确使用了吗?如果Match.Successtrue,那是否意味着字符串有效?

c# regex validation

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

SSL失败 - 在将HttpWebRequest与客户端证书一起使用时接收SSL/TLS异常

我有一个带有IIS 7的Windows 2008 Server,它使用.NET C#应用程序向PayPal发送请求以处理付款.几个月前,我安装了Verisign购买的证书.安装后,我能够运行我的WebClient代码以成功创建SSL连接,并通过PayPal NVP API(名称值对)处理付款.

最近,我在SSL交易期间收到了一个错误.具体错误如下:

无法创建SSL/TLS安全通道

我已经检查了我能想到的一切,并在网上阅读了很多关于StackOverflow和其他地方的文章.

我找到的最好的资源是:

请求已中止:无法创建SSL/TLS安全通道

查找本文中的错误http://support.microsoft.com/kb/915599 解决方案J.也可能是您没有提供客户端证书.很可能这是使用TLS或SSL3并且服务器不理解它的问题.

http://blogs.msdn.com/b/jpsanders/archive/2009/01/07/you-receive-one-or-more-error-messages-when-you-try-to-make-an-http-请求功能于一个应用程序 - 即-被建 - 上的净框架-2-0.aspx

这里列出了我尝试阅读并提出解决方案的所有其他资源:

我试过的各种链接:

http://support.microsoft.com/kb/901183

无法创建SSL/TLS安全通道 - 问题可能是代理服务器吗?

请求已中止:无法创建SSL/TLS安全通道

请求已中止:无法创建SSL/TLS安全通道 - Decrypt已返回SEC_I_RENEGOTIATE

http://social.msdn.microsoft.com/forums/en-US/netfxnetcom/thread/99d49286-5c3a-4311-a1e3-499f035ce979/

http://blogs.msdn.com/b/jpsanders/archive/2009/01/07/you-receive-one-or-more-error-messages-when-you-try-to-make-an-http-请求功能于一个应用程序 - 即-被建 - 上的净框架-2-0.aspx

http://forums.iis.net/t/1156690.aspx

我尝试了以下解决方案:

  1. 重新安装证书,并将其放入各种商店(个人,本地计算机)
  2. 添加了此ServiceManager代码:

    ServicePointManager.Expect100Continue = true;
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 启用日志记录以获取更详细的详细信息

  4. 以上链接中列出的各种其他解决方案

令人沮丧的是,这几个月前工作正常,现在我收到了这个错误.起初,我认为证书已过期,但似乎没问题.

它可能是Windows Server的Service Pack或Hotfix创建了一个破坏SSL的新设置或方案.我认为重新安装证书可以解决这个问题.

重要的是要注意,当我重新安装时,我只是将它添加到各个商店(双击证书并安装).我没有创建"证书申请".由于它已经安装并绑定到我的IIS应用程序的SSL端口,它应该没问题.

这是创建Web请求的代码:

     public static Hashtable DoWebReq(string strNVP, string strNVPSandboxServer)
    {
        ServicePointManager.Expect100Continue = true;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

        string _strNVP = strNVP; 

        //Create web request and web response objects, make …
Run Code Online (Sandbox Code Playgroud)

.net security ssl certificate

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

直接自引用导致循环异常

我有类似这样的课

public abstract class ElasticSearchValue<T> {

  private Long txId;
  private Long currentTxId;
  private T previous;

  public Long getTxId() {
    return txId;
  }

  public void setTxId(Long txId) {
    this.txId = txId;
  }

  public Long getCurrentTxId() {
    return currentTxId;
  }

  public void setCurrentTxId(Long currentTxId) {
    this.currentTxId = currentTxId;
  }

  public Object getPrevious() {
    return previous;
  }

  public void setPrevious(T previous) {
    this.previous = previous;
  }

}
Run Code Online (Sandbox Code Playgroud)

还有一个扩展上面课程的课程

public class DailyActivity extends ElasticSearchValue<DailyActivity> {

  Long agentId;
  Date date;
  Long success;

  public Long getAgentId() …
Run Code Online (Sandbox Code Playgroud)

java serialization jackson deserialization elasticsearch

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

调整XAML Grid.Background图像的大小

我有一个简单的XAML片段,它放置了一组瓷砖,每个瓷砖都带有背景图像图标.

                <Grid.Background>
                    <ImageBrush Stretch="None" 
                                ImageSource="{Binding ImageSource}" 
                                AlignmentY="Center" 
                                AlignmentX="Center"/>
                </Grid.Background>
Run Code Online (Sandbox Code Playgroud)

这很好,除了背景图像完美填充方块.我确信XAML认为这很好,但实际上它需要大约一半的尺寸来匹配规格.

我尝试了几种方法,包括为网格添加边框(截断背景图像,保持尺寸,但在侧面和顶部切掉它),并在不同的位置添加边距和填充.

我也玩这个正常,但一切都浮在这个背景图像的顶部,所以这不是一个选项.

最后我应该提到这是一个使用Windows运行时的Windows 8 Windows应用商店应用,因此我在这里无法使用WPF中的某些功能(如ViewPort).

问题:如何调整XAML网格背景图像的大小/尺寸?

旁注:我认为解决方案可能在于变革......?

更新:每张海报请求这里是预期的结果.即使它看起来没有在这里发生背景图像浮动,在其他地方文本浮在背景上.这就是为什么它需要是一个而不是一个元素.

它现在看起来如何:

当前的背景图片

应该如何看待:

我多么希望它看起来

wpf xaml windows-runtime windows-8.1

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

自定义指令范围与attrs

在angular中创建自定义指令时我有一个问题.当我使用链接功能时,我不确定在使用attrs或scope访问属性时有什么真正的区别.以这段代码为例:

myApp.directive('someDirective', function() {
    return {
        restrict: 'E',
        replace: true,
        scope: {
            title: '=title'
        },
        template: '<img/>',
        link: function(scope, element, attrs) {
            if (scope.title) {
                // do something here
            }
            if (attrs.title){
                // do something here
            }
        },
    }
Run Code Online (Sandbox Code Playgroud)

根据我的观察,从attrs和范围访问'title'属性具有类似的效果.真正的区别是什么?

javascript angularjs angularjs-directive

6
推荐指数
1
解决办法
3228
查看次数

在WPF XAML中扩展复杂的SVG路径

我在这里有一组使用Illustrator创建的非常复杂的可缩放矢量图形图标,并使用Expression Blend和Inkscape hack导入到我的WPF应用程序中:

将SVG转换为XAML

我尝试了各种导入原始图标的方法,这是上面的方法是他们在我的应用程序中正确导入的唯一方法.

所以现在我需要让我的应用程序工作在一个新的较小的分辨率,即使在ViewBox中这些图标将无法扩展.

如果我删除宽度/高度属性,它会破坏SVG,图标基本上消失了.

  <Style x:Key="BenefitsIconFlexBox" TargetType="{x:Type Viewbox}">
    <Setter Property="MaxHeight" Value="240"/>
    <Setter Property="Height" Value="201"/>
    <Setter Property="Margin" Value="10,0,0,10"/>
</Style>
Run Code Online (Sandbox Code Playgroud)

...

        <Viewbox Style="{StaticResource BenefitsIconFlexBox}">
            <Canvas Width="213.333" Height="213.333" Clip="F1 M 0,0L 213.333,0L 213.333,213.333L 0,213.333L 0,0" UseLayoutRounding="False">
                <Path Canvas.Left="0" Canvas.Top="3.05176e-005" Stretch="Fill" Fill="#FFEDEDED" Data="F1 M 213.333,106.667C 213.333,165.579 165.579,213.333 106.667,213.333C 47.7547,213.333 0,165.579 0,106.667C 0,47.7547 47.7547,3.05176e-005 106.667,3.05176e-005C 165.579,3.05176e-005 213.333,47.7547 213.333,106.667 Z "/>
                <Canvas Canvas.Left="60.588" Canvas.Top="46.828">
                    <Path Canvas.Left="17.276" Canvas.Top="0" Stretch="Fill" Fill="#FF424242" Data="F1 M 46.0787,0C 30.1827,0 17.276,13.0107 17.276,28.7973L 17.276,40.3173L 28.7973,40.3173L 28.7973,28.7973C 28.7973,19.308 36.584,11.5213 46.0787,11.5213C 55.5733,11.5213 63.36,19.308 …
Run Code Online (Sandbox Code Playgroud)

wpf xaml

6
推荐指数
1
解决办法
3048
查看次数

图像在C#中调整大小 - 确定调整大小尺寸(高度和宽度)的算法

我需要缩小高度或宽度大于预定义像素值的图像.

我编写了一些代码来查看原始图像,检查宽度,高度或高度和宽度是否大于最大宽度/最大高度设置.

我现在需要根据后一个值的最大值找出要调整大小的尺寸.

例如:如果图像是900h x 300w和MAX高度是700h我需要调整高度700和宽度????< - 这是我需要计算的..

创建和保存图像文件很简单,超出了本文的范围:

// First I get the max height and width allowed:

int resizeMaxHeight =  int.Parse(Utility.GetConfigValue("ResizeMaxHeight")); // in config: 700px
int resizeMaxWidth =  int.Parse(Utility.GetConfigValue("ResizeMaxWidth"));  //  in config: 500px

// Save original: 
try
{
    filebase.SaveAs(savedFileName);
}
catch (System.IO.DirectoryNotFoundException ex)
{
    Logger.Instance.LogException(ex, 0, "FileTransfer");
}

// Determin original dimensions:
Image image = System.Drawing.Image.FromFile(Server.MapPath(savedFileName));

int resizeHeight, resizeWidth;
bool doResize = true;

// both height and width are greater …
Run Code Online (Sandbox Code Playgroud)

c# system.drawing image-manipulation bitmap image-processing

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

将变量传递到:包含选择器

window.something.updateStatus = function(theName) {
  $('#myTable').children('tr').remove(":contains('theName')");
};
Run Code Online (Sandbox Code Playgroud)

显然上面的代码不起作用,因为它正在myTable中的任何一个中查找名为"theName"的字符串.

我想做的是将Name的值传递给contains.

我该如何评估这个表达式?

谢谢.

css jquery jquery-selectors

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

WinForms - 使用ProcessCmdKey VS KeyDown捕获按键组合

我的目标是实现一个自定义Control + S键按下处理程序,以连接到winforms应用程序中的自定义保存方法.

基于我的研发,有几种方法可以实现这一目标.首先,我尝试了明显的KeyPress事件处理程序.这不足以捕获我需要的按键(它没有在编辑器级别调用,这是我需要的).

看起来更好的第二个选项是受保护的覆盖bool ProcessCmdKey(ref Message msg,Keys keyData)覆盖.这有效 - 它拦截了CTRL键点击,但显然我需要编写额外的代码来坚持按下CTRL键的事实并拦截下一次按键(在我的情况下将是S),然后执行自定义操作.

 protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (keyData == (Keys.S | Keys.Control))
        {
            // This is never called
        }
        else if (keyData == (Keys.Menu | Keys.Alt))
        {
           // this is called each time I hit CTRL
        }
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

在我按下CTRL键后,似乎立即调用了ProcessCmdKey.

这篇文章建议创建一个KeyTracker类,它将持久按下按键并执行它需要做的事情:

通过ProcessCmdKey捕获密钥序列

这似乎是一个不错的选择,但在我开始实现一个纪念品跟踪模式之前,是否有人对如何完成这个看似常见的功能有任何意见?

另一种模式使用GetKeyboardState API函数:

在C#中捕获多个关键点

这看起来很有趣,但我不确定它是否符合我的需求.

[DllImport ("user32.dll")]
Run Code Online (Sandbox Code Playgroud)

public static extern int GetKeyboardState(byte [] keystate);

private void Form1_KeyDown( object sender, KeyEventArgs e )
{ …
Run Code Online (Sandbox Code Playgroud)

keyboard winforms

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

在运行Quartz作业时补偿TimeZone偏移

我有一个独特的问题,我的石英作业调度程序实现使用quartz.net代码库版本2.0.1构建,最近发现在运行和执行作业时忽略了时区和utc偏移.这是本版本的quartz.net中的继承错误,并且更新到2.1.1版现在已超出范围,因此我使用此算法编写了一种快速而肮脏的计算偏移量的方法:

(ServerTime - ClientTime) - TargetTime = New_TargetTime_With_Offset

这里的想法是客户,在纽约市说,在下午5点找工作,并希望它在下午2点运行.服务器(此应用程序和作业服务器运行的位置)当前时间是下午2:00,因此我们将客户端时间和服务器时间用于获取偏移量并将该偏移量应用于目标时间,即作业应运行的时间.

我的问题是,这感觉就像计算日期的方式一样,但似乎它会完成这项工作.有没有更好/更可靠的方法来做这个日期数学?这也似乎是边缘情况下的错误,我错过了什么?

这是实施:

    /// <summary>
    /// Takes three dates and returns the adjusted hour value.
    /// All date data is ignored except for the hour. 
    /// </summary>
    /// <param name="serverTime"></param>
    /// <param name="clientTime"></param>
    /// <param name="targetTime"></param>
    /// <returns></returns>
    private static DateTime OutputDate(DateTime serverTime, DateTime clientTime, DateTime targetTime)
    {
        DateTime? output = null;
        TimeSpan? dateDiff;

        if (serverTime < clientTime)
        {
            dateDiff = (clientTime - serverTime);
        }
        else
        {
            dateDiff = (serverTime - clientTime); …
Run Code Online (Sandbox Code Playgroud)

c# datetime timespan quartz-scheduler quartz.net

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