我知道有@Before和@BeforeClass,用于定义固定装置@Test.但是,如果我需要不同的灯具,我应该怎么用@Test?
@Test吗?@Test吗?我在这里要求最好的做法,因为我认为这两种解决方案都不干净.使用第一个解决方案,我将测试初始化代码.在第二个解决方案中,我将打破"每个类的一个测试类"模式.
我试图弄清楚如何将DispatcherObject(在我的案例中为BitmapSource)复制到另一个线程中.
使用案例:
我有一个需要在新线程中显示窗口的WPF应用程序(该应用程序实际上是Outlook插件,我们需要这样做,因为Outlook在主UI线程中有一些钩子并且正在窃取我们需要使用的某些热键 - 在Outlook,WPF(我们用于UI)和Winforms(我们需要使用某些微软提供的winforms控件)的互操作中"丢失翻译").
有了这个,我有WPFMessageBox的实现,通过设置一些静态属性来配置 - 其中一个是图标的BitmapSource.这样使用,以便在启动时我可以设置一次WPFMessageBox.Icon,从那时起,每个WPFMessageBox将具有相同的图标.
问题是分配给图标的BitmapSource是DispatcherObject,当读取时,它将抛出InvalidOperationException:"调用线程无法访问此对象,因为不同的线程拥有它.".
如何将BitmapSource克隆到实际线程中?它有Clone()和CloneCurrentValue()方法,它们不起作用(它们也抛出相同的异常).我也发现使用originalIcon.Dispatcher.Invoke(在这里进行克隆) - 但BitmapSource的Dispatcher为null,仍然 - 我在错误的线程上创建了一个副本,但仍然无法在我的上使用它.BitmapSource.IsFrozen == true.
关于如何将BitmapSource复制到不同的线程(没有从新线程中的图像文件完全重构)的任何想法?
编辑: 所以,冻结没有帮助:最后我有一个BitmapFrame(Window.Icon无论如何也不会采用任何其他类型的ImageSource),当我在另一个线程上将其指定为Window.Icon时,即使冻结,我得到InvalidOperationException:"调用线程无法访问此对象,因为另一个线程拥有它." 具有以下堆栈跟踪:
WindowsBase.dll!System.Windows.Threading.Dispatcher.VerifyAccess() + 0x4a bytes
WindowsBase.dll!System.Windows.Threading.DispatcherObject.VerifyAccess() + 0xc bytes
PresentationCore.dll!System.Windows.Media.Imaging.BitmapDecoder.Frames.get() + 0xe bytes
PresentationFramework.dll!MS.Internal.AppModel.IconHelper.GetIconHandlesFromBitmapFrame(object callingObj = {WPFControls.WPFMBox.WpfMessageBoxWindow: header}, System.Windows.Media.Imaging.BitmapFrame bf = {System.Windows.Media.Imaging.BitmapFrameDecode}, ref MS.Win32.NativeMethods.IconHandle largeIconHandle = {MS.Win32.NativeMethods.IconHandle}, ref MS.Win32.NativeMethods.IconHandle smallIconHandle = {MS.Win32.NativeMethods.IconHandle}) + 0x3b bytes
> PresentationFramework.dll!System.Windows.Window.UpdateIcon() + 0x118 bytes
PresentationFramework.dll!System.Windows.Window.SetupInitialState(double requestedTop = NaN, double requestedLeft = NaN, double requestedWidth = 560.0, double requestedHeight = NaN) + 0x8a bytes
PresentationFramework.dll!System.Windows.Window.CreateSourceWindowImpl() + …Run Code Online (Sandbox Code Playgroud) 我想从这个页面获取数据:
http://www.canadapost.ca/cpotools/apps/track/personal/findByTrackNumber?trackingNumber=0656887000494793
Run Code Online (Sandbox Code Playgroud)
但该页面转发到:
http://www.canadapost.ca/cpotools/apps/track/personal/findByTrackNumber?execution=eXs1
Run Code Online (Sandbox Code Playgroud)
因此,当我open从OpenUri 使用来尝试获取数据时,它会抛出一个RuntimeError错误说HTTP redirection loop:
我不确定如何在重定向并抛出该错误后获取该数据.
我如何setStatus从内部打电话awakeFromNib?
-(void)awakeFromNib {
setStatus; // how?
}
/* Function for setting window status */
- (void)setStatus {
[statusField setStringValue:@"Idle"];
}
Run Code Online (Sandbox Code Playgroud) 我只是想问一下,我知道Linux中的标准系统调用是通过指向中断向量表的int指令完成的.我认为这在Windows上类似.但是,您如何调用某些更高级别的特定系统例程?比如你怎么告诉Windows创建一个窗口?我知道这是由dll中的代码处理的,但在汇编程序指令级别实际发生了什么?dll中的例程是通过int指令调用软件中断,还是有任何不同的方法来处理它?谢谢.
如果所有浏览器都支持属性选择器,我们可以轻松执行以下操作:
input[type='text'] { font:bold 0.8em 'courier new',courier,monospace; }
input[type='radio'] { margin:0 20px; }
input[type='checkbox'] { border:2px solid red;
Run Code Online (Sandbox Code Playgroud)
但我不认为6和更高版本的所有IE版本都支持这一点.
我想我想避免皮肤.不知道为什么,除了我尝试过它们之外我还记得有过负面的体验.可能是我缺乏知识.使用和CSS,外部或其他方面是否有任何问题?
处理这个问题的最佳方法是什么?目前我正在为每种控件类型分配单独的类.
问题是:当我在页面上放置2个相同类型的控件时,我需要为绑定指定不同的前缀.在这种情况下,在表单不正确之后生成的验证规则.那么如何让客户端验证工作呢?
该页面包含:
<%
Html.RenderPartial(ViewLocations.Shared.PhoneEditPartial, new PhoneViewModel { Phone = person.PhonePhone, Prefix = "PhonePhone" });
Html.RenderPartial(ViewLocations.Shared.PhoneEditPartial, new PhoneViewModel { Phone = person.FaxPhone, Prefix = "FaxPhone" });
%>
Run Code Online (Sandbox Code Playgroud)
控件ViewUserControl <PhoneViewModel>:
<%= Html.TextBox(Model.GetPrefixed("CountryCode"), Model.Phone.CountryCode) %>
<%= Html.ValidationMessage("Phone.CountryCode", new { id = Model.GetPrefixed("CountryCode"), name = Model.GetPrefixed("CountryCode") })%>
Run Code Online (Sandbox Code Playgroud)
其中Model.GetPrefixed("CountryCode")只返回"FaxPhone.CountryCode"或"PhonePhone.CountryCode"取决于前缀
这是表单后生成的验证规则.它们被复制为字段名"Phone.CountryCode".虽然期望的结果是每个FieldNames"FaxPhone.CountryCode","PhonePhone.CountryCode" alt文本的 2个规则(必需,数量),但是 http://www.freeimagehosting.net/uploads/37fbe720bf.png
这个问题与Asp.Net MVC2客户端验证和重复ID的问题有些重复, 但建议手动生成ID并没有帮助.
我从http://code.google.com/p/google-gson/下载了Gson库.存档包含以下jar文件:
google-gson-1.3/gson-1.3-javadoc.jar
google-gson-1.3/gson-1.3.jar
google-gson-1.3/gson-1.3-sources.jar
如何设置Eclipse以便能够在我的项目中使用该包?我在哪里放文件?
我想写一些类似的查询: -
Select u from bookmaster u order by Year(b.createDate),Month(b.createDate),day(b.createDate)
Run Code Online (Sandbox Code Playgroud)
我如何在JPQL中执行此操作?是否有可用的日期解析功能?
我的主要问题是,当上传的文件超出允许的大小时,我想显示自定义错误页面(web.config中的maxRequestLength).
上传大文件时,在调用控制器中的上传操作方法之前会抛出HttpException.这是预料之中的.
我试图在自定义属性中捕获异常,并在控制器中覆盖OnException.为什么不能在属性或OnException方法中捕获异常?
虽然可以在global.asax中捕获Application_Error中的异常,但Response.Redirect和Server.Transfer都不能用于重定向到自定义错误页面.Server.Transfer给出"未能处理子请求"错误,而response.redirect给出"已发送Http头"错误.
有任何想法吗?
提前致谢!
马库斯
asp.net ×2
c# ×2
.net ×1
asp.net-mvc ×1
bitmapsource ×1
client ×1
cocoa ×1
css ×1
eclipse ×1
fixtures ×1
iis-6 ×1
iis-7 ×1
install ×1
java ×1
jpql ×1
junit ×1
objective-c ×1
open-uri ×1
prefixes ×1
redirect ×1
system-calls ×1
validation ×1
windows ×1
wpf ×1