我打算第一次按照MVVM模式编写一个WPF应用程序,但对我来说并不是很清楚.假设视图有一个"保存"按钮,当它被命中时,我需要保存我的数据的当前状态(模型).这将通过向SOAP服务发送SOAP消息来完成.
在我的MVVM设置中,这些SOAP请求/响应处理程序是否存在?每当按下保存按钮时,视图模型是否会自动调用SOAP?视图模型是否应该通知模型保存自己?也许它是另一种方式,与MVVM完全分开?
我的想法是(至少在这种特定情况下)视图模型将处理它,因为它需要在视图中禁用保存按钮,直到当前保存请求完成.
我想将字符文字与字符串的第一个元素进行比较,以检查文件中的注释.为什么要用炭?我想把它变成一个函数,它接受注释的字符var.我不想允许字符串,因为我想将其限制为单个字符的长度.
考虑到这一点,我认为简单的方法是解决字符并将其传递给std :: string的比较函数.然而,这给了我意想不到的结果.
我的代码如下:
#include <string>
#include <iostream>
int main ( int argc, char *argv[] )
{
std::string my_string = "bob";
char my_char1 = 'a';
char my_char2 = 'b';
std::cout << "STRING : " << my_string.substr(0,1) << std::endl
<< "CHAR : " << my_char1 << std::endl;
if (my_string.substr(0,1).compare(&my_char1)==0)
std::cout << "WOW!" << std::endl;
else
std::cout << "NOPE..." << std::endl;
std::cout << "STRING : " << my_string.substr(0,1) << std::endl
<< "CHAR : " << my_char2 << std::endl;
if (my_string.substr(0,1).compare(&my_char2)==0)
std::cout …Run Code Online (Sandbox Code Playgroud) 假设我在表中有一个数据类型为XML的列.我有一个特定的值,我想要在XML中的唯一(不重复)的xml标记中查询.我该怎么做呢?
就像是:
select * from MyTable
where XMLColumn.TagImLookingAt.Value = @QueryValue
Run Code Online (Sandbox Code Playgroud) 我用Firefox Selenium进行了一些测试,然后将它导出到Ruby.尽管测试在Firefox中运行良好,但我在Ruby中运行相同的套件时遇到了麻烦.
我试图运行他们拥有的一个示例程序,我也得到了相同的连接拒绝错误.这是我在尝试运行google_test套件时遇到的错误.
tellingsen$ ruby google_test.rb
Loaded suite google_test
Started
E
Finished in 0.001558 seconds.
1) Error:
test_page_search(ExampleTest):
Errno::ECONNREFUSED: Connection refused - connect(2)
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:560:in `initialize'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:560:in `open'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:560:in `connect'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:62:in `timeout'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:93:in `timeout'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:560:in `connect'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:553:in `do_start'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:542:in `start'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:1035:in `request'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:845:in `post'
/Users/tellingsen/.gem/ruby/1.8/gems/selenium-client-1.2.18/lib/selenium/client/protocol.rb:89:in `http_post'
/Users/tellingsen/.gem/ruby/1.8/gems/selenium-client-1.2.18/lib/selenium/client/protocol.rb:12:in `remote_control_command'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:62:in `timeout'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:93:in `timeout'
/Users/tellingsen/.gem/ruby/1.8/gems/selenium-client-1.2.18/lib/selenium/client/protocol.rb:11:in `remote_control_command'
/Users/tellingsen/.gem/ruby/1.8/gems/selenium-client-1.2.18/lib/selenium/client/protocol.rb:19:in `string_command'
/Users/tellingsen/.gem/ruby/1.8/gems/selenium-client-1.2.18/lib/selenium/client/base.rb:85:in `start_new_browser_session'
google_test.rb:21:in `setup'
1 tests, 0 assertions, 0 failures, 1 errors
Run Code Online (Sandbox Code Playgroud)
有人可以帮我弄这个吗?
注意:
编辑 这是我试过的google_test.rb
#!/usr/bin/env ruby …Run Code Online (Sandbox Code Playgroud) 我正在将Windows窗体应用程序转换为WPF应用程序.有没有办法获取诸如启动路径,用户应用程序数据路径,通用应用程序数据路径等,而无需引用System.Windows.Forms?
以前,我用过System.Windows.Forms.Application.StartupPath,但System.Windows.Application.Current对象不包含相同的信息.
我在Java中扩展了一个类,它有一个私有变量,我希望在变量之前得到它的值.没有方法可以在超类中访问此变量.我试过super().m_zoomArea(变量在ZoomableChartjChart2D 的类中).mouseDragged调用方法时更新变量.我已重写此方法,并希望在更新之前获取变量的值.
我有一个wix安装程序,它将安装一个XML文件,然后进行修改.安装工作很棒.今天,我需要为这个XML文件添加几个节点.所以我修改了原始文件,然后添加了一些额外的指令给wix来分配这些项目值.
好吧,我每次都说它无法找到节点时出错.我查看并查看它在目录中的文件,它仍然具有没有该节点的旧文件.如何告诉它先替换XML文件然后修改它?我不想使用"CreateElement",因为我不知道如果它已经存在,如何不创建元素(没有尝试过,所以也许它可以工作).此外,我希望我的XML文件是配置的定义.
这是我的XML示例:
<Component Id="MyProgExeConfigComponent" Guid="*">
<File
Id="MyProgExeConfig"
Name="MyProg.exe.config"
DiskId="1"
Source="../Published/MyProg/MyProg.exe.config"
PatchWholeFile="yes"
KeyPath="yes"/>
<util:XmlFile
Id="MyProgExeConfigUser"
Action="setValue"
Permanent="yes"
File="[INSTALLLOCATION]\MyProg.exe.config"
ElementPath="/configuration/appSettings/add[\[]@key='UserName'[\]]"
Name="value"
Value="[USER]"/>
<util:XmlFile
Id="MyProgExeConfigPassword"
Action="setValue"
Permanent="yes"
File="[INSTALLLOCATION]\MyProg.exe.config"
ElementPath="/configuration/appSettings/add[\[]@key='Password'[\]]"
Name="value"
Value="[PASSWORD]" />
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
例如IEnumerable<T>界面:
public interface IEnumerable<out T> : IEnumerable
{
IEnumerator<T> GetEnumerator();
}
Run Code Online (Sandbox Code Playgroud)
在此接口中,泛型类型仅用作接口方法的返回类型,不用作方法参数的类型,因此它可以是协变的.给出这个,不能编译从理论上推断出界面的方差吗?如果可以的话,为什么C#要求我们明确设置共同/反向变换关键字.
更新:正如Jon Skeet所提到的,这个问题可以用于子问题:
编译器可以通过它在当前泛型类型及其所有基类型中的使用方式来推断泛型类型的共同/逆变?
例如.. .NET Framework 4.0中有多少通用接口参数可以自动标记为co/contravariant而没有任何歧义?约70%,80%,90%或100%?
如果可以的话,默认情况下是否应该对通用类型应用协变/反演?至少对于它能够分析和推断与类型使用的共同/逆转的那些类型.
我有一个分布式应用程序,它在内部千兆网络上使用.NET Remoting.有一台服务器,以及十几个连接到服务器的客户端.客户端运行多个线程,每个客户端最多可以有10个并发请求.
这个应用程序大多数时候都很好用.服务器一次保持数月.我不时会在客户端上遇到异常,我无法弄清楚导致异常的原因.异常和堆栈跟踪是:
System.Runtime.Remoting.RemotingException: Tcp channel protocol violation: expecting preamble.
Server stack trace:
at System.Runtime.Remoting.Channels.Tcp.TcpSocketHandler.ReadAndMatchPreamble()
at System.Runtime.Remoting.Channels.Tcp.TcpSocketHandler.ReadVersionAndOperation(UInt16& operation)
at System.Runtime.Remoting.Channels.Tcp.TcpClientSocketHandler.ReadHeaders()
at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream)
at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
Run Code Online (Sandbox Code Playgroud)
这是堆栈跟踪回到我进行远程调用的地方.
我看起来并且在我正在进行的调用中或在服务器返回的数据中找不到任何异常.
谷歌搜索此错误并不是很有成效.我见过的大多数错误都是围绕某人从HTTP转换为TCP而不是改变所有内容,所以当他们尝试连接时会遇到异常.在我的情况下,客户端将在我收到此错误之前运行几天.
另一个数据点:服务器确实收到了很多请求.大多数客户端都是Web爬虫,每个客户端每分钟向服务器发出2,000多个请求.因此,服务器每秒处理超过500个请求,具有更高流量的突发.在任何情况下,服务器似乎处理流量没问题,如果服务器过载,我会发现一个非常不同的错误.
是什么原因造成了这个错误?
我一直回到这个问题的变种:它可能有一个非常简单的解决方案,但我似乎无法弄清楚...
我有一堆xQuantity形式的类,例如DistanceQuantity,AreaQuantity等,它们扩展了一个DimensionQuantity类.现在你可以添加或减去DistanceQuantity或AreaQuantity等,但你不能混合它们,所以我认为我需要在子类中有(短)加,减等方法,但我想减少任何逻辑重复到最低限度.但是,我需要返回子类的对象,这似乎很难从超类方法中做到.我相信这可以使用反射来完成,但AFAIK你仍然需要在子类方法的最后做一个演员,而且我被告知反射可能很昂贵......到目前为止我想出的最好的是:
在DistanceQuantity(和其他类似的):
public DistanceQuantity() {
}
public DistanceQuantity add(DistanceQuantity d1) {
DistanceQuantity dn = new DistanceQuantity();
Object o = super.add(dn, this, d1, DistanceUnit.REF_UNIT);
return (DistanceQuantity) o;
}
Run Code Online (Sandbox Code Playgroud)
在DimensionQuantity中(减去一些不太相关的语句):
public Object add(DimensionQuantity dn, DimensionQuantity d1, DimensionQuantity d2,
AbstractUnit au) {
dn.unit = au;
dn.scalar = d1.scalar + d2.scalar;
dn.units = dn.scalar;
return dn;
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以提出更精简的代码 - 这仍然是类型安全的吗?TIA
c# ×2
java ×2
wpf ×2
xml ×2
.net ×1
c++ ×1
char ×1
connection ×1
covariance ×1
generics ×1
inheritance ×1
literals ×1
mvvm ×1
remoting ×1
ruby ×1
selenium ×1
sql ×1
sql-server ×1
string ×1
subclassing ×1
t-sql ×1
upgrade ×1
wix ×1