问题列表 - 第42804页

无需打开文件即生成校验和

有没有办法计算只读文件的校验和?

我见过的唯一例子就是使用这样的算法

public string GetChecksum()
{
    FileStream file = new FileStream(_filePath, FileMode.Open);
    MD5 md5 = new MD5CryptoServiceProvider();
    byte[] retVal = md5.ComputeHash(file);
    file.Close();

    StringBuilder sb = new StringBuilder();
    foreach (byte t in retVal)
    {
        sb.Append(retVal[1].ToString("x2"));
    }
    return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)

c# cryptography

0
推荐指数
1
解决办法
2164
查看次数

泛型,重载解析和代理(对不起,找不到更好的标题)

可能重复:
为什么Func <T>与Func <IEnumerable <T >>不明确?

我注意到泛型的一个非常奇怪的重载解决问题......

请考虑以下方法:

static void Foo<TSource>(TSource element, Func<TSource, int> selector)
{
    "int".Dump();
}

static void Foo<TSource>(TSource element, Func<TSource, double> selector)
{
    "double".Dump();
}

static T Identity<T>(T value)
{
    return value;
}
Run Code Online (Sandbox Code Playgroud)

(C#4,在LINQPad中测试)

如果我尝试Foo使用lambda表达式作为选择器调用,一切正常:

Foo(42, x => x); // prints "int"
Run Code Online (Sandbox Code Playgroud)

但是,如果我替换x => xIdentity,编译器无法在2个Foo重载之间做出决定:

Foo(42, Identity);
// The call is ambiguous between the following methods or properties:
// 'UserQuery.Foo<int>(int, System.Func<int,int>)' and
// 'UserQuery.Foo<int>(int, System.Func<int,double>)'
Run Code Online (Sandbox Code Playgroud)

如何将第二次重载作为有效候选者?类型推断正确判断TSourceint …

c# compiler-construction generics overload-resolution

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

以编程方式创建NSTableView(让NSHeaderView显示出来的麻烦)(cocoa osx)

我正在以编程方式制作NSTableView,但由于某些原因,无论我做什么,我都无法让darn headerView显示出来.我必须以编程方式执行此操作而不使用IB,因为我实际上是在名为clozure cl的IDE中开发此小部件,这是一个包含可可桥的lisp ide.最初我认为这个问题可能是由我的开发环境引起的,但我只是在Xcode中使用目标C创建了一个例子,似乎问题仍然存在.我所做的非常简单:

我在IB中创建了一个窗口,在我的awkefromnib方法中,我创建并设置了一个表视图,这里是代码:

- (void)awakeFromNib {
mydatasource *data = [[mydatasource alloc] init];
NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:@"id"];
NSTableView *table = [[NSTableView alloc] initWithFrame: [[self                      

   contentView]frame]];
[table setDataSource:data];
[table addTableColumn:column];
[table addTableColumn:column];
[[self contentView] addSubview:table];
}
Run Code Online (Sandbox Code Playgroud)

这是我的数据源对象的代码:

- (int)numberOfRowsInTableView:(NSTableView *)aTableView
{
printf("NUM ROwS");
    return 4;
}
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn    *)aTableColumn row:(NSInteger)rowIndex
{
 printf("THE OTHER ONE"); 
 return @"OKAY";
}
Run Code Online (Sandbox Code Playgroud)

使用这段代码,我得到一个包含两个列和四行的窗口,每个单元格显示字符串"OKAY",除了表没有标题外,这一切都很好.这可能是有意义的,除非我查看表头方法,它有一个初始化的头,其框架的值是有意义的.我只是想知道为什么我没有看到它.我需要做一些特殊的魔术才能显示标题吗?我似乎无法在文档中找到任何线索.再一次,必须以编程方式完成这个lisp ide,所以没有建议使用我知道将有一个工作headerView的IB没有帮助.非常感谢.

macos cocoa objective-c nstableview

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

尝试对for循环的"next"arg使用while循环会生成#arg错误

我试图教自己用Tcl编程.我自己设定的任务是激励我学习Tcl是为了解决8皇后问题.我创建程序的方法是先后"原型化"解决方案.
我已经问过一个与正确布局嵌套for循环相关的早期问题并得到了一个有用的答案.
令我沮丧的是,我发现我的代码的下一个开发会产生相同的解释器错误:"wrong#args"
我一直小心在while循环命令之前的行末尾有一个开括号.我也尝试将while循环的参数放在括号中.这会产生不同的错误.我真诚地试图理解Tcl语法手册页 - 不太成功 - 由我之前的问题的回答者提出.这是代码

set allowd 1
set notallowd 0

for {set r1p 1} {$r1p <= 8} {incr r1p } {
    puts "1st row q placed at $r1p" 
    ;# re-initialize r2 'free for q placemnt' array after every change of r1 q pos:
    for {set i 1 } {$i <= 8} {incr i} { set r2($i) $allowd    }

    for { set r2($r1p) $notallowd ; set r2([expr $r1p-1]) $notallowd ;
            set r2([expr $r1p+1]) $notallowd ; set r2p …
Run Code Online (Sandbox Code Playgroud)

tcl

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

jquery clone select不保持值

我正在尝试克隆一个feildset然后提交输入的内容并选择使用序列化.它工作正常,但选择不保持其价值.我已经尝试了几种我找到的方法,但似乎没有任何效果.这是我克隆和设置当前数据的方式.

克隆时如何保持select的值?

 $('body').append('<form id="form-to-submit" style="visibility:hidden;"></form>');  
var fieldsetName = $this.parents('.fieldsetwrapper');  
$('#form-to-submit').html($(fieldsetName).clone());  
var data = $('#form-to-submit').serialize();  
Run Code Online (Sandbox Code Playgroud)

jquery

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

从中等信任环境中的Web.config读取system.net/mailSettings/smtp

我有一些继承的代码,它system.net/mailSettings/smtp在Web.config 的部分中存储SMTP服务器,用户名和密码.

它曾经像这样读取它们:

Configuration c = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
MailSettingsSectionGroup settings = (MailSettingsSectionGroup)c.GetSectionGroup("system.net/mailSettings");
return settings.Smtp.Network.Host;
Run Code Online (Sandbox Code Playgroud)

但是当我不得不部署到中等信任环境时,这种情况就失败了.

所以按照这个问题的答案,我重写它使用GetSection()如下:

SmtpSection settings = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");
return settings.Network.Host;
Run Code Online (Sandbox Code Playgroud)

但它仍然在中等信任上给我一个SecurityException,并带有以下消息:

尝试访问配置部分'system.net/mailSettings/smtp'时,ConfigurationPermission请求失败.要允许所有调用者访问此部分的数据,请在声明此部分的配置文件中将section属性'requirePermission'设置为等于'false'.

所以我尝试了这个requirePermission属性,但无法弄清楚放在哪里.

如果我将它应用于<smtp>节点,我会得到一个ConfigurationError:"无法识别的属性'requirePermission'.请注意,属性名称区分大小写."

如果我将它应用于<mailSettings>节点,我仍然会得到SecurityException.

有没有办法在中等信任下以编程方式获取此配置部分?或者我应该放弃它并将设置移动到<appSettings>?

asp.net asp.net-3.5

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

Android在同一TextView中链接web和@mentions

好的,我昨天问了这个问题:

Twitter客户端中的AutoLink @mentions

我正确地连接了@mentions.但为了让它工作,我不得不把android:autoLink ="web"用于我的xml for TextView.所以现在我获得了@mentions的链接,但它不再链接URL.我尝试做两个单独的Linkify.addLinks()调用,如下所示:

mentionFilter = new TransformFilter() {
    public final String transformUrl(final Matcher match, String url) {
        return match.group(1);
    }
};

// Match @mentions and capture just the username portion of the text.
//pattern = Pattern.compile("@([A-Za-z0-9_-]+)");
pattern = Pattern.compile("(@[a-zA-Z0-9_]+)");
scheme = "http://twitter.com/";

tweetTxt = (TextView) v.findViewById(R.id.tweetTxt);


Linkify.addLinks(tweetTxt, pattern, scheme, null, mentionFilter);
Linkify.addLinks(tweetTxt, Linkify.WEB_URLS);
Run Code Online (Sandbox Code Playgroud)

但是最后被称为最后被应用的那个.任何人都可以告诉我如何将它链接到@mentions并仍然自动链接URL?

编辑以澄清更多的代码.

android textview linkify

14
推荐指数
3
解决办法
9028
查看次数

是否可以通过MVVM Light Messenger发送令牌?

我一直在重构一些最初使用MessengerMVVM Foundation的代码,现在使用MessengerMVVM Light Toolit.我似乎无法找到等效的一件事是你要做的就是发送一个令牌(即令牌既作为消息的唯一标识符作为消息本身).

原始代码(MVVM Foundation) - 一个字符串可以完成所有操作

// send code
mvvmFoundationMessenger.NotifyColleagues("QuestionTimedOut");

// register code
mvvmFoundationMessenger.Register(
    "QuestionTimedOut",
    () => UpdateOnQuestionTimedOut());
Run Code Online (Sandbox Code Playgroud)

新代码(MVVM Light) - 有比这更优雅的解决方案吗?

// send code
mvvmLightMessenger.Send("QuestionTimedOut", "QuestionTimedOut");

// register code
mvvmLightMessenger.Register<string>(
    this,
    "QuestionTimedOut",
    token => UpdateOnQuestionTimedOut());
Run Code Online (Sandbox Code Playgroud)

我意识到我可以明确地新建一个,NotificationMessage但这将添加更多的代码.

wpf mvvm mvvm-light

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

如何在excel VBA中检查或取消MULTIPLE挂起的application.ontime事件?

我正在使用Application.Ontime事件从单元格中提取时间字段,并安排子程序在此时运行.我的Application.Ontime事件在Workbook_BeforeSave事件上运行.因此,如果用户(更改所需时间+保存工作簿)多次,则会创建多个Application.Ontime事件.从理论上讲,我可以使用唯一的时间变量跟踪每个事件..但有没有办法检查/解析/取消待处理事件?

Private Sub Workbook_BeforeSave
    SendTime = Sheets("Email").Range("B9")
    Application.OnTime SendTime, "SendEmail"
End Sub

Private Sub Workbook_BeforeClose
    Application.OnTime SendTime, "SendEmail", , False
End Sub
Run Code Online (Sandbox Code Playgroud)

因此,如果我:
将B9更改为12:01,将工作簿
更改为B9保存到12:03,将工作簿
更改B9保存到12:05,将工作簿
更改B9保存到12:07,保存工作簿

我最终解雇了多个事件.我只想要一场比赛(最近一场比赛)

如何在Workbook_BeforeClose事件中取消所有挂起事件(或至少枚举它们)?

excel ontime vba

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

试图不需要两个单独的x86和x64程序解决方案

我有一个程序需要在x86和x64环境中运行.它使用的是Oracle的ODBC驱动程序.我有一个Oracle.DataAccess.DLL的引用.但是,根据系统是x64还是x86,此DLL会有所不同.

目前,我有两个独立的解决方案,我维护两者的代码.这太残忍了.我想知道什么是正确的解决方案?

我的平台设置为"任何CPU".并且我的理解是VS应该将DLL编译为中间语言,这样如果我使用x86或x64版本则无关紧要.然而,如果我尝试使用x64 DLL,我收到错误"无法加载文件或程序集'Oracle.DataAccess,Version = 2.102.3.2,Culture = neutral,PublicKeyToken = 89b483f429c47342'或其中一个依赖项.加载格式不正确的程序."

我在32位机器上运行,所以错误信息是有意义的,但它让我想知道当我需要在x64上工作时我应该如何有效地开发这个程序.

谢谢.

c# oracle visual-studio-2008

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