我正处于为我的工作的企业应用程序编写XML模式的最初阶段.要验证的XML代表一个应用程序 - 类似于Winforms - 表单,网格,菜单等但没有布局.
XSD的主要目的不是验证XML,而是为XML文件添加设计时可发现性,以便获得可用元素和属性的IntelliSense.
当我编写模式时,我发现自己正在执行TDD的元素并根据模式验证文档,更改文档或模式中的元素/属性以使验证无法确保我正确地编写模式.
这让我想到了我是否应该对模式进行单元测试,只是在其中抛出一些XML的排列,并确保它的行为方式如此.
这对我来说肯定是有意义的,因为我的XSD-fu很糟糕,我想更加确定XSD,它实际上是一个规范本身,是正确的.
有没有人能够在Windows Phone Series 7模拟器上使用WCF进行通信?
在过去的两天里我一直在努力,而这正好适合我.我可以在Silverlight 3和Silverlight 4中使用普通的Silverlight控件,但不能使用手机版本.这是我尝试过的两个版本:
BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
EndpointAddress endpointAddress = new EndpointAddress("http://localhost/wcf/Authentication.svc");
Wcf.IAuthentication auth1 = new ChannelFactory<Wcf.IAuthentication>(basicHttpBinding, endpointAddress).CreateChannel(endpointAddress);
AsyncCallback callback = (result) =>
{
Action<string> write = (str) =>
{
this.Dispatcher.BeginInvoke(delegate
{
//Display something
});
};
try
{
Wcf.IAuthentication auth = result.AsyncState as Wcf.IAuthentication;
Wcf.AuthenticationResponse response = auth.EndLogin(result);
write(response.Success.ToString());
}
catch (Exception ex)
{
write(ex.Message);
System.Diagnostics.Debug.WriteLine(ex.Message);
}
};
auth1.BeginLogin("user0", "test0", callback, auth1);
Run Code Online (Sandbox Code Playgroud)
此版本在此行中打破:
Wcf.IAuthentication auth1 = new ChannelFactory<Wcf.IAuthentication>(basicHttpBinding, endpointAddress).CreateChannel(endpointAddress);
Run Code Online (Sandbox Code Playgroud)
投掷System.NotSupportedException.例外情况不是很具描述性,而且callstack同样不是很有用: …
我是Wpf和Mvvm世界的新手,但我发现了几个例子,并且发现有一些不同的方式来实例化模型.我想知道最好/最正确的方法.两种方式都使用Unity
我发了什么:
var navigatorView = new MainView();
navigatorView.DataContext = m_Container.Resolve<INavigatorViewModel>();
m_RegionManager.Regions["NavigatorRegion"].Add(navigatorView);
Run Code Online (Sandbox Code Playgroud)
我做了什么:
var navigatorView = m_Container.Resolve<MainView>;
m_RegionManager.Regions["NavigatorRegion"].Add(navigatorView);
Run Code Online (Sandbox Code Playgroud)
并且我更改了构造函数以接收viewmodel,因此我可以将datacontext指向它:
public MainView(NavigatorViewModel navigatorViewModel)
{
this.DataContext = navigatorViewModel;
}
Run Code Online (Sandbox Code Playgroud)
其他例子我发现了另一种方式:
...vm = new viewmodel
...m = new model
v.model = vm;
Run Code Online (Sandbox Code Playgroud)
获取/设置DataContext
干杯
如何NullReferenceException在以下场景中获得?
Dim langs As IEnumerable(Of SomeCustomObject) = //some LINQ query
If langs Is Nothing Then Return Nothing
If langs.Count = 1 Then //NullReferenceException here
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?Debug显示这langs实际上只是一个没有任何结果的LINQ queryresult ...
帮帮我理解 我读过这个
"终结者的执行时间和顺序无法预测或预先确定"
正确?
但是看看RavenDB源代码TransactionStorage.cs,我看到了这一点
~TransactionalStorage()
{
try
{
Trace.WriteLine(
"Disposing esent resources from finalizer! You should call TransactionalStorage.Dispose() instead!");
Api.JetTerm2(instance, TermGrbit.Abrupt);
}
catch (Exception exception)
{
try
{
Trace.WriteLine("Failed to dispose esent instance from finalizer because: " + exception);
}
catch
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
API类(属于Managed Esent)可能会使用SafeHandle对本机资源进行处理?
因此,如果我理解正确,可以在TransactionStorage之前完成本机句柄SafeHandle,这可能会产生不良影响,也许为什么Ayende在此处添加了catch all子句?
实际上潜入Esent代码,它不使用SafeHandles.
根据CLR通过C#这是危险的吗?
internal static class SomeType {
[DllImport("Kernel32", CharSet=CharSet.Unicode, EntryPoint="CreateEvent")]
// This prototype is not robust
private static extern IntPtr CreateEventBad(
IntPtr pSecurityAttributes, Boolean manualReset, Boolean initialState, String name);
// …Run Code Online (Sandbox Code Playgroud) 在较旧版本的MOQ中,以下代码可以正常工作(例如3.1.416.3).它不再了.如何将模拟更改为工作?问题是接口继承了另一个接口并重新定义了一个字段.因此我的模拟现在需要配置两个字段的值,因为这在我Code1()和Code2()调用中使用
public interface I
{
string field { get; }
}
public interface IModi : I
{
new string field { get; set; }
}
public class P : IModi
{
private string val;
string I.field
{
get { return val; }
}
public string field
{
get { return val; }
set { val = value; }
}
public static void Code1(I p)
{
Console.WriteLine(p.field);
}
public static void Code2(IModi p)
{
Code1(p);
Console.WriteLine(p.field);
} …Run Code Online (Sandbox Code Playgroud) 谈话很便宜; 我宁愿展示代码:
//global var
var siblings = [];
var rand = new Date().getTime();
siblings.push('uin_' + rand);
alert(siblings['uin_' + rand]); // undefined
Run Code Online (Sandbox Code Playgroud)
为什么未定义?我基本上想要实现的是拥有一个全局对象,该对象将成为存储其中保存有关其他对象的信息的存储.但回到我的问题.我推了价值然后我想提醒它但是未定义...为什么未定义?