我正在创建一个动态函数,在给定构造函数params的object []的情况下在运行时创建一个对象.我一直得到通用异常'操作可能会破坏运行时',我看不出我做错了什么.
如果创建的对象不需要构造函数参数,则该方法可以正常工作 - 因此问题必须在for循环中的代码中.
代码索引到给定的对象[]中,将对象放入堆栈,然后调用ctor并返回对象.
有任何想法吗???
internal static Func<object[], object> CreateObjectFactoryMethodWithCtorParams(ConstructorInfo ctor, int ctorArgsLength)
{
Func<object[], object> factoryMethod = null;
if (ctor != null)
{
var dm = new DynamicMethod(string.Format("_CreationFacotry_{0}", Guid.NewGuid()), typeof(object), new Type[] { typeof(object[])}, true);
var il = dm.GetILGenerator();
il.DeclareLocal(typeof(int));
il.DeclareLocal(typeof(object));
il.BeginExceptionBlock();
il.Emit(OpCodes.Ldc_I4_0); // [0]
il.Emit(OpCodes.Stloc_0); //[nothing]
for (int i = 0; i < ctorArgsLength; i++)
{
EmitInt32(il, i); // [args][index]
il.Emit(OpCodes.Stloc_0); // [args][index]
il.Emit(OpCodes.Ldarg_0); //[args]
EmitInt32(il, i); // [args][index]
il.Emit(OpCodes.Ldelem_Ref); // [item-in-args-at-index]
}
il.Emit(OpCodes.Newobj, ctor); //[new-object] …Run Code Online (Sandbox Code Playgroud) 我有一个命令行,我想在安装合并模块(由WiX创建)期间运行以下代码.
<CustomAction
Id='SetWebsiteProtocols'
Execute='commit'
Return='ignore'
Impersonate="yes"
FileKey='Web.config'
ExeCommand='c:\windows\system32\inetsrv\appcmd.exe set app "Default Web Site/My Website" /enabledProtocols:http,net.tcp,net.pipe' />
<InstallExecuteSequence>
<Custom Action="SetWebsiteProtocols" After="InstallFiles"/>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)
当我在命令行上运行命令(此时硬编码)它工作正常.但是,在安装期间运行时,它会失败.打开日志记录显示错误代码1721,但谷歌搜索没有返回任何感兴趣.
我该如何解决这个问题?
我想知道如何计算 X509 证书的公钥密码?
例如。我通过网络请求获得了证书
var cert = (httpRequest as HttpWebRequest).ServicePoint.Certificate;
X509Certificate2 cert2 = new X509Certificate2(cert);
Run Code Online (Sandbox Code Playgroud)
我不确定在此之后该怎么做,因为我需要主题公钥信息(对其进行哈希处理),但我在 X509Certificate2 类中找不到它,也无法确定如何构造它。我可以通过 GetKeyInfo() 方法获得指数和模数,这似乎是 SPKI 的核心。
我相信有一种简单的方法可以做到这一点,但任何帮助都会很棒!
谢谢
我有一个配置xml文件,我需要在flex应用程序之前解析值.
我创建了一个静态类,允许检索xml配置文件中的值.
我正在应用程序第一次加载时初始化此类,但是当xml文件加载了一个Loader类,该类同步加载该类时,在实际加载xml文件之前会要求该类 - 因此它会抛出错误.
有没有办法同步加载这个xml文件或任何人都建议解决这个问题?我们无法将文件作为类变量嵌入,因为我们需要能够远程更改值.
我刚刚开始进行单元测试并且有一个场景我不知道如何评估和我的解决方案感觉不对.
我有一些代码可以执行某些操作,如果失败,则抛出异常,捕获并记录异常,如下所示.
public T CreateTypedObjectInstance<T>()
{
T o = default(T);
try
{
o = Activator.CreateInstance<T>();
}
catch (Exception ex)
{
LogError(ex);
throw ex;
}
return o;
}
private void LogError(Exception ex)
{
if (logger != null)
{
logger.LogError(ex);
}
}
Run Code Online (Sandbox Code Playgroud)
我想测试一下,如果抛出错误,它会调用LogError()方法,后者又调用另一个对象.
我使用了一个模拟记录器来处理这个问题并捕获抛出的第一个异常,然后断言调用了LogError方法.但是,这不需要捕获异常吗?我记得读过一些在测试中尝试捕获的东西是不好的吗?有没有其他方法可以执行此测试,还是应该重构逻辑?任何想法都会很棒!
[Test]
public void CreateTypedObjectInstance_GivenTypeWithoutPrivateContructor_LogErrorToLogger()
{
//Setup Method used
MockRepository mockery = new MockRepository();
ILogger mockedLogger = mockery.StrictMock<ILogger>();
genericObjectFactoryInstance.Logger = mockedLogger;
Expect.Call( delegate { mockedLogger.LogError(null); } ).IgnoreArguments();
mockery.ReplayAll();
// this will throw an error as String does not have …Run Code Online (Sandbox Code Playgroud) 我已经创建了一个自定义textInput组件,它使用私有验证器处理它自己的验证.根据组件的状态启用验证,即当组件状态为"编辑"时启用验证.
但是,当状态从编辑更改时,内部验证程序设置为未启用但文本框上的验证错误未清除 - textInput仍具有红色边框,并且在鼠标悬停时出现验证错误.我想要发生的是,当禁用验证器时,错误格式化和错误消息将从文本输入控件中清除.
有没有人知道如何做到这一点我尝试将内部验证器实例设置为enabled = false并调度新的focusOutEvent如下所示,但验证错误格式仍然应用于textInput控制.
_validatorInstance.enabled = false;
//clear the validation errors if any
dispatchEvent(new FocusEvent(FocusEvent.FOCUS_OUT));
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
谢谢
乔恩
我想通过HTTP GET访问我的一个Web服务方法,我之前已经看过它但我无法弄清楚如何在VS2008 Web服务项目上允许这种访问协议.
我想你必须改变web.config文件,但不知道该怎么做.
有人知道吗?
我有一个活动A,它将活动B称为结果.
活动是调用相机意图拍照然后将其发送到服务器.在Activity BI的异步任务的PostExecute方法中,调用finish()希望返回到活动A.但是,我刚刚从Activity B的intent调用中收到的图像被删除了.我必须再次按下后退按钮才能返回活动A.
如何跳过从相机获取图片并返回活动A的中间活动?
提前致谢
乔恩
c# ×3
apache-flex ×2
android ×1
e4x ×1
flash ×1
flex3 ×1
http-get ×1
http-headers ×1
nunit ×1
pki ×1
reflection ×1
rhino-mocks ×1
tdd ×1
uicomponents ×1
unit-testing ×1
validation ×1
web-services ×1
wix ×1
wix3 ×1
wix3.5 ×1
xml ×1