数据库密集型应用程序中的关键之一是使事务尽可能短.
今天我想知道这笔交易何时会开始:
using (SqlConnection sqlConnection = new SqlConnection(connectionString))
{
sqlConnection.Open();
/*(1)*/ SqlTransaction sqlTransaction = sqlConnection.BeginTransaction(IsolationLevel.ReadUncommitted);
//Perform some stuff
//...
/*(2)*/ using (SqlCommand command = new SqlCommand(sqlQuery, sqlConnection, sqlTransaction))
{
//Some other stuff
//...
try
{
/*(3)*/sqlCommand.ExecuteNonQuery();
//More irrelevant code
//...
sqlCommand.CommandText = otherQuery;
sqlCommand.ExecuteNonQuery();
sqlTransaction.Commit();
}
catch(Exception)
{
sqlTransaction.Rollback();
throw;
}
}
}
Run Code Online (Sandbox Code Playgroud)
在步骤(1),(2)或(3)中?理想情况下,它应该在第3步.
我想知道采用哪种算法.我强烈认为它很简单,而且很有希望.例如,生成结果没有延迟.
输入:任何字符串
输出:5个十六进制字符(0-F)
我可以访问尽可能多的键和结果,但我不知道我是如何利用它来攻击函数的.有什么方法吗?如果我知道任何转换为5-chars的函数开始,那么我可能会对盐或其他东西蛮力.
我知道例如:
a = 06a07
b = bfbb5
c = 63447
(如果你有什么想法的话)
在正常使用中,它将随机32字符串转换为5字符串.
我在ASP中有一个如下所示的数组:
3,5,7,7,3,2,3
Run Code Online (Sandbox Code Playgroud)
我想要做的是将它们与计数分组,这样我就可以:
Number Count
2 1
3 3
5 1
7 2
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果是这样的话?
我使用以下代码来显示 WPF 应用程序中未处理的异常:
public MyApplication() {
this.DispatcherUnhandledException += (o, e) => {
var exceptionMessage = new ExceptionWindow();
exceptionMessage.ExceptionMessage.Text = e.Exception.Message;
exceptionMessage.ExceptionCallStack.Text = e.Exception.StackTrace;
exceptionMessage.ExceptionInnerException.Text = e.Exception.InnerException.Message;
exceptionMessage.WindowStartupLocation = WindowStartupLocation.CenterScreen;
exceptionMessage.WindowStyle = WindowStyle.ToolWindow;
exceptionMessage.ShowDialog();
e.Handled = true;
Shell.Close();
};
}
Run Code Online (Sandbox Code Playgroud)
事实证明,我在应用程序实例化期间出现异常,因此应用程序构造函数永远不会执行。
重现它的一种简单方法(有不同的例外)是在应用程序配置文件中的某些标记之前引入额外的“<”并运行它。
在调用应用程序构造函数之前会出现类似这样的无用错误消息。 替代文本http://srtsolutions.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mikewoelmer/ExceptionWPF1_5F00_1C1F39AA.jpg
有谁知道如何捕获此类异常?
备注:我正在使用Caliburn,并且我的应用程序扩展了 CaliburnApplication。
我正在使用Mercurial,我在当地遇到了一个可怕的混乱,有三个头.我无法推送,我只想删除所有本地更改和提交,然后重新开始使用完全干净的代码和干净的历史记录.
换句话说,我希望最终得到(a)与远程分支的尖端中存在的本地完全相同的代码,以及(b)没有任何本地提交的历史记录.
我知道会hg update -C覆盖任何本地更改.但是如何删除任何本地提交?
要清楚,我没有兴趣保留我在当地完成的任何工作.我只想要最简单的方法来恢复到完全干净的本地结账.
据我所知,OpenOffice在将文件保存为csv文件时,将所有字符串括在引号字符中.
那么是否需要逃脱角色?
并且与这个问题有关:
OpenOffice是否有默认的转义字符?
我已经成功创建了一个在不使用身份验证时正常工作的WS客户端.
但是,服务器(WebSphere)现在需要添加一个ws-security用户名令牌,而我很难做到这一点.生成的SOAP消息应该看起来像这样:
<soapenv:Envelope
xmlns:ns="http://foo.bar/1.0"
xmlns:ns1="http://www.witsml.org/schemas/140"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-2" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>foo</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">bar</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">foooooobar==</wsse:Nonce>
<wsu:Created>2010-01-25T13:09:24.860Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ns:fooBar>...</ns:fooBar>
</soapenv:Body>
Run Code Online (Sandbox Code Playgroud)
我已经下载并安装了Microsoft的WSE 3.0 SDK,并在我的Visual Studio 2005项目中添加了对DLL的引用.
我现在可以访问Microsoft.Web.Services3.*命名空间,但我目前难以理解如何继续.
客户端代码是由Web引用自动生成的,因此我只做了少量工作就将消息发送到未经身份验证的服务器:
WS.FooResultHttpService ws = new WS.FooResultHttpService();
ws.Url = "http://foo.bar.baz";
ws.SendSomething(message);
Run Code Online (Sandbox Code Playgroud)
我刚开始调查使用Microsoft.Web.Services3.Security.Tokens.UsernameTokenManager,但到目前为止,我还没有能够得到任何东西.
任何提示将不胜感激,因为我似乎无法在网上找到任何好的食谱.
谢谢!
有没有办法让这个场景有效?
有一个Python脚本.它通过使用IronPython运行此脚本而内置到DLL中:
import clr
clr.CompileModules("CompiledScript.dll", "script.py")
Run Code Online (Sandbox Code Playgroud)
目标是从C#代码调用此DLL的方法..NET Reflector显示DLL中有一个类 - DLRCashedCode我们感兴趣的方法是此类的私有静态方法.
例如,脚本中有一个函数:
def scriptMethod(self, text):
...
Run Code Online (Sandbox Code Playgroud)
它在DLL中的表示是:
private static object scriptMethod(Closure closure1, PythonFunction $function, object self, object text)
{
...
}
Run Code Online (Sandbox Code Playgroud)
Closure并且PythonFunction是IronPython类(来自Microsoft.Scripting.dll和IronPython.dll).
到现在为止还挺好.是否有可能通过C#代码调用此方法?使用反射的想法
Type t = typeof(DLRCachedCode);
string methodName = "scriptMethod";
MethodInfo method = t.GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Static);
object[] parameters = new object[] { "param1", "param2" }; // the "params problem"
method.Invoke(null, parameters);
Run Code Online (Sandbox Code Playgroud)
因为设置方法的参数似乎更难.如果它们(如何)正确初始化,我们是否可以期望该方法能够顺利运行?
有没有更好的方法从C#调用此方法?出于各种不同的原因,我们希望将脚本构建为.NET程序集,而不是调用脚本本身.
以下代码(打包在'Console Application'Visual Studio项目中):
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace TestReflection
{
class Program
{
static void Main(string[] args)
{
bool found = false;
foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
{
if (assembly.GetType("System.Diagnostics.Process") != null)
{
found = true;
break;
}
}
Console.WriteLine(found);
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在调试模式(F5)下运行时打印'True',但在没有调试器的情况下启动它时为'False'(Ctrl-F5).其他类显示类似的行为(System.Text.RegularExpressions.Regex),其他类在两种情况下都可以找到(System.IO.File).
我可能错过了一些明显的东西 - 为什么会这样?
(同样的事情发生在Visual Studio 2005和2008中).
找到的组件列表:
调试模式:
mscorlib
TestReflection
System
Microsoft.VisualStudio.HostingProcess.Utilities
System.Windows.Forms
Run Code Online (Sandbox Code Playgroud)
运行模式:
mscorlib
TestReflection
Run Code Online (Sandbox Code Playgroud)
正如答案所暗示的那样,在运行模式下,系统组件丢失(未加载).我的问题是我假设GetAssemblies()也返回未加载的程序集.
虽然这解释了行为System.Diagnostics.Process,为什么我的代码System.IO.File在运行和调试模式下都能找到?
谢谢!
我已经将代码更改为循环加载的程序集和当前程序集,收集这些程序集引用的程序集列表.如果迭代加载的程序集后我找不到我正在寻找的类型,我开始加载并检查引用的程序集.
看来即使我 …
c# ×3
.net ×2
ado.net ×1
algorithm ×1
android ×1
asp-classic ×1
caliburn ×1
constructor ×1
csv ×1
dvcs ×1
escaping ×1
exception ×1
hash ×1
head ×1
ironpython ×1
mercurial ×1
python ×1
reflection ×1
sql-server ×1
transactions ×1
vbscript ×1
web-services ×1
wpf ×1
ws-security ×1
wse3.0 ×1