我们正在开发一个网上商店,并使用第三方UI处理付款.
我们选择在iframe内部结帐页面中显示付款UI,即使(我们现在意识到),付款解决方案提供商建议使用顶级窗口.
现在发生的事情是,在IE7/IE8中,支付UI在第一次回发(在iframe内)失去会话状态,而在Firefox中,它工作得很好.我们观察到支付UI是使用ASP.NET开发的.
我的印象是,就服务器而言,从iframe引用与顶级窗口之间没有区别,但显然有.
有人有线索吗?iframe做了什么可能会对支付服务器产生影响,导致它失去会话状态?
可能(它突然在我身上恍然大悟)是cookie处理的差异吗?或许更严格的安全?
我们用C#开发了一个库,现在我想创建一个项目模板来帮助正确使用库.
我希望新项目包含对库程序集的引用,但是不希望不必将程序集部署到GAC,或者依赖于驻留在某个特定位置的程序集.
我在想的是在项目模板.zip文件中包含.dll.这意味着它将最终位于新项目的项目文件夹中的某个位置.也许在名为Lib的文件夹中.然后项目文件中的引用提示可以指向该文件夹.这是一个好主意吗?我可能面临什么问题?
是否有一些机制可以将这些第三方库包含在我不知道的项目模板中?你是怎么解决这个问题的?当然,我不是第一个.
我有一个带有DependencyProperty的UserControl.我使用数据绑定表达式在主机窗口中设置它的值.但是,它没有按预期工作.
来自用户控件的代码隐藏的片段:
public class ViewBase : UserControl
{
public static readonly DependencyProperty ViewModelProperty
= DependencyProperty.Register(
"ViewModel", typeof(ViewModelBase), typeof(ViewBase));
public ViewModelBase ViewModel
{
get { return GetValue(ViewModelProperty) as ViewModelBase; }
set
{
SetValue(ViewModelProperty, value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
并且从XAML(注意:CasingListView继承自ViewBase):
<CasingEditor:CasingListView x:Name="_casingListView"
ViewModel="{Binding CasingListViewModel}" />
Run Code Online (Sandbox Code Playgroud)
什么都没有发生.具体来说,永远不会调用setter,并且该属性保持为null.我知道source属性CasingListViewModel
有一个值,因为我试图将它绑定到另一个属性(DataContext),它工作正常.
我认为依赖属性可以是数据绑定.我错了吗?
我在这里完全糊涂了,
我的代码抛出异常,因为File.Exists()返回false
public override sealed TCargo ReadFile(string fileName)
{
if (!File.Exists(fileName))
{
throw new ArgumentException("Provided file name does not exist", "fileName");
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio在throw语句中断,我立即检查File.Exists(fileName)
在即时窗口中的值.它回来了true
.当我将断点拖回到if语句并再次执行时,它会再次抛出.
fileName是文件的绝对路径.我不是在创建文件,也不是写文件(它一直都在那里).如果我将路径粘贴到记事本中的打开对话框中,它会毫无问题地读取文件.
代码在后台工作程序中执行.这是我能想到的唯一复杂因素.我很肯定文件还没有在工作线程或其他地方打开过.
这里发生了什么?
"常规"Windows应用程序快捷方式具有目标,该目标是可执行文件的路径.此路径在快捷方式的属性对话框中可见(且可编辑).
但是许多快捷方式没有这样的路径,只显示(只读)应用程序名称.例如,所有MS Office程序都有这样的快捷方式.
这些快捷方式是如何工作的(我想这涉及到一个进步),它们优于"常规"快捷方式的优势是什么?为什么我要将这些快捷方式用于我自己的应用程序?
最后,我可以使用Visual Studio 2008中的安装项目构建的安装程序创建这样的快捷方式吗?
windows shortcuts windows-installer visual-studio-2008 visual-studio
考虑以下服务接口:
public interface IServiceA
{
void DoSomething(string s);
void DoSomething(string s, bool b);
}
public interface IServiceB
{
void DoSomething();
}
Run Code Online (Sandbox Code Playgroud)
IServiceB的实现取决于IServiceA,如下所示:
public class ServiceB : IServiceB
{
private IServiceA _serviceA;
public ServiceB(IServiceA serviceA)
{
_serviceA = serviceA;
}
public void DoSomething()
{
_serviceA.DoSomething("Hello", true);
}
}
Run Code Online (Sandbox Code Playgroud)
就是 依赖项被注入到构造函数中。
现在考虑对该DoSomething()
方法进行单元测试。我想断言,调用了IServiceA中的一种重载DoSomething方法,但是遵循一个普遍的原则,即单元测试对所测试方法的内部工作不应该了解太多,我希望与哪一个无关。称为两个重载。考虑以下单元测试:
[TestFixture]
public class ServiceBTests
{
[Test]
public void DoSomething_CallsServiceA()
{
var serviceAMock = MockRepository.GenerateMock<IServiceA>();
var service = new ServiceB(serviceAMock);
service.DoSomething();
// Problem: How to check if EITHER:
serviceAMock.AssertWasCalled(s …
Run Code Online (Sandbox Code Playgroud) .net ×1
asp.net ×1
assert ×1
c# ×1
data-binding ×1
iframe ×1
rhino-mocks ×1
shortcuts ×1
unit-testing ×1
windows ×1
wpf ×1