.NET框架是否有一个函数可以计算字符串中包含的数字表达式并返回结果?铁:
string mystring = "3*(2+4)";
int result = EvaluateExpression(mystring);
Console.Writeln(result); // Outputs 18
Run Code Online (Sandbox Code Playgroud)
是否有标准框架功能,您可以用我的EvaluateExpression方法替换?
我对WPF有一个奇怪的问题,我在运行时从磁盘加载图像并将它们添加到StackView容器中.但是,图像未显示.经过一些调试我找到了诀窍,但它确实没有任何意义.我制作了一个小型演示应用程序来识别问题:
创建一个新的WPF项目,并粘贴代码如下:
XAML:
<Window x:Class="wpfBug.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
<StackPanel Name="sp">
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
xaml.cs,粘贴在默认值下面:
namespace wpfBug
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Image i = new Image();
BitmapImage src = new BitmapImage();
src.BeginInit();
src.UriSource = new Uri("picture.jpg", UriKind.Relative);
src.EndInit();
i.Source = src;
i.Stretch = Stretch.Uniform;
//int q = src.PixelHeight; // Image loads here
sp.Children.Add(i);
} …Run Code Online (Sandbox Code Playgroud) 我需要计算相当大的文件(千兆字节)的校验和.这可以使用以下方法完成:
private byte[] calcHash(string file)
{
System.Security.Cryptography.HashAlgorithm ha = System.Security.Cryptography.MD5.Create();
FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read);
byte[] hash = ha.ComputeHash(fs);
fs.Close();
return hash;
}
Run Code Online (Sandbox Code Playgroud)
但是,文件通常是以缓冲方式预先写入的(比如一次写入32mb).我确信我看到了一个覆盖哈希函数,它允许我在写入的同时计算MD5(或其他)哈希,即:计算一个缓冲区的哈希值,然后将得到的哈希值提供给下一次迭代.
像这样的东西:(伪代码)
byte [] hash = new byte [] { 0,0,0,0,0,0,0,0 };
while(!eof)
{
buffer = readFromSourceFile();
writefile(buffer);
hash = calchash(buffer, hash);
}
Run Code Online (Sandbox Code Playgroud)
hash现在通过在整个文件上运行calcHash函数来实现.
现在,我无法在.Net 3.5框架中找到任何覆盖,我在做什么?它从来没有存在过,或者我只是在搜索时很糟糕?同时进行写入和校验和计算的原因是因为大文件有意义.
有人知道如何WindowsPrincipal.IsInRole("domain\role")使用活动目录通用组吗?
假设当前用户是名为Domain的域中名为Role的组的成员,并且Role组是Active Directory中的Global组.然后,以下代码将产生result = true:
WindowsPrincipal wp = new WindowsPrincipal(WindowsIdentity.GetCurrent());
bool result = wp.IsInRole(@"domain\Role");
Run Code Online (Sandbox Code Playgroud)
但是,如果将Role组更改为通用组,则代码将生成result = false.
如果我要从表中选择一行,我基本上有两个选项,或者像这样
int key = some_number_derived_from_a_dropdown_or_whatever
SqlCommand cmd = new SqlCommand("select * from table where primary_key = " + key.ToString());
Run Code Online (Sandbox Code Playgroud)
或使用参数
SqlCommand cmd = new SqlCommand("select * from table where primary_key = @pk");
SqlParameter param = new SqlParameter();
param.ParameterName = "@pk";
param.Value = some_number_derived_from_a_dropdown_or_whatever;
cmd.Parameters.Add(param);
Run Code Online (Sandbox Code Playgroud)
现在,我知道第一种方法因为可能的SQL注入攻击而不受欢迎,但在这种情况下,参数是一个整数,因此不应该真正注入恶意代码.
我的问题是:您是否在生产代码中使用选项1,因为您认为使用安全是因为易于使用和控制插入的参数(如上所述,或者参数是否在代码中创建)?或者你总是使用参数,不管是什么?参数100%注射安全吗?
您将使用哪些技术在MySql中的一个非常大的表上的列中搜索内容?例如,假设您在数据库的表中存储了10.000.000封电子邮件,并且希望实现主题搜索,这将使我能够搜索电子邮件主题中存在的一个或多个单词.如果用户搜索"圣诞老人圣诞节",您应该找到一封电子邮件,其中包括"圣诞老人拜访我们这个圣诞节"和"圣诞节,圣诞老人会永远展示".
我的想法是处理主题中的所有单词(删除所有数字,特殊符号,逗号等)并将每个单词保存在索引表中,其中我在单词列上有唯一索引.然后我会通过多对多关系表将它链接到电子邮件表.
有没有更好的方法在非常大的表上执行通配符搜索?
是否存在本机支持此类搜索的数据库?
场景:
我有一个带有webservices的ASP.Net/Silverlight网站,用于支持带有数据的Silverlight应用程序.该网站使用表单身份验证,因此Web服务也可以对请求进行身份验证.
现在我想从这个系统中将一些数据提取到Android应用程序中.我可以实现运行表单登录的代码,并存储身份验证cookie,但在webservice url中发送用户名和密码并验证每个调用实际上要简单得多.我并没有真正看到这个问题,因为通信是SSL加密的,但我很开放,否则会被说服;)
你怎么看 ?不好主意/没那么糟糕的主意?
结论:
在查看答案后,url请求字符串中针对name/pass的唯一真正有效的参数是它存储在服务器日志文件中.当然,这是我的服务器,如果该服务器被黑客入侵,它存储的数据也将被黑客攻击,但我仍然不喜欢日志中显示的密码.(这就是为什么它们被存储盐渍和加密)
解:
我将发布用户名和passord请求.最少的额外工作,更安全.