我正在使用以下代码迭代浏览器可执行路径列表并启动它们中的每一个:
foreach (var browser in browsers)
{
var proc = new Process();
proc.StartInfo.FileName = browser.ExecutablePath;
proc.StartInfo.Arguments = "http://google.com";
proc.Start();
proc.WaitForExit();
Console.WriteLine(proc.ExitCode.ToString());
proc.Close();
}
Run Code Online (Sandbox Code Playgroud)
应该做的是:它应该打开浏览器窗口并加载google.com并停止应用程序直到窗口关闭.它适用于IE和Firefox,但在Chrome中失败.
对于Chrome 启动浏览器后proc处于Exit状态,当窗口仍处于活动状态且可见时.
我试图使用一些铬命令行开关,包括--new-window和--single-process但没有成功.
问题是,如何强制Google Chrome在启动过程中运行,那么可以等到窗口关闭?
更新
只是为了澄清这个问题:
如何将div并排放置,其中一个div('contentwrapper')响应浏览器的大小调整.
HMTL
<div id="maincontainer">
<div id="leftcolumn"> </div>
<div id="contentwrapper"> </div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
#maincontainer {
width:100%;
height: 100%;
}
#leftcolumn {
display:inline-block;
width: 100px;
height: 100%;
background: blue;
}
#contentwrapper {
display:inline-block;
width:100%;
height: 100%;
background-color: red;
}
Run Code Online (Sandbox Code Playgroud)
JSFIDDLE http://jsfiddle.net/A5HM7/
我尝试使用F#创建可移植类库,例如可以使用C#代码.不过貌似使用标准的F#构造,就像raise让FSharp.Core.dll需要使用便携式创建类库.
raise(ArgumentNullException("parameter")) 变成了
Operators.Raise<Unit>(new ArgumentNullException("source"));
Run Code Online (Sandbox Code Playgroud)
(Operators.Raise住在Microsoft.FSharp.Core命名空间中)而不仅仅是
throw new Exception
Run Code Online (Sandbox Code Playgroud)
我假设这不是唯一从FSharp.Core.dll库编译为某个静态方法的F#构造.
有没有办法创建F#代码(特别是可移植类库),在编译后不需要引用FSharp.Core.dll或任何其他FSharp特定的库?
我刚刚开始在WinPhone开发中,无法弄清楚如何设置垂直滚动.例如,我已经启动了一个新的Pivot应用程序,此代码允许用户向上滚动并拥有以查看所有条目:
<controls:PivotItem Header="Login">
<!--Double line list with text wrapping-->
<ListBox x:Name="FirstListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,17" Width="432" Height="78">
<TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
<TextBlock Text="{Binding LineTwo}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</controls:PivotItem>
Run Code Online (Sandbox Code Playgroud)
现在,当我添加自己的枢轴项目时,堆叠面板上的项目数量超过屏幕上任何时候都可以看到的项目,它将不允许我滚动查看它们.我在这里错过了什么?
谢谢.
我有问题DataContractSerializer.我用它从ASP.NET Web Service返回的XML创建类实例.但实际上数据来源在这里并不重要.为了使整个案例更容易调试,我创建了一个简单的测试项目,只是序列化,问题仍然存在.
这是我的XML:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<GetTestURL p1:type="MyApp.GetTestUrlInfo" xmlns:p1="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">
<TestURL>http://bing.com</TestURL>
<UserCount p1:type="Edm.Int32">1</UserCount>
<InitialCount p1:type="Edm.Int32">1</InitialCount>
<AverageExecutionTime p1:type="Edm.Int32">43</AverageExecutionTime>
</GetTestURL>
Run Code Online (Sandbox Code Playgroud)
我正在尝试将XML反序列化为:
[DataContract(Name = "GetTestURL", Namespace = "http://schemas.microsoft.com/ado/2007/08/dataservices")]
public class TestInfo
{
[DataMember(Name = "TestURL")]
public Uri TestUri { get; private set; }
[DataMember(Name = "UserCount")]
public int UserCount { get; private set; }
[DataMember(Name = "InitialCount")]
public int InitialCount { get; private set; }
[DataMember(Name = "AverageExecutionTime")]
public int AverageExecutionTime { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
和我的序列化助手类:
public …Run Code Online (Sandbox Code Playgroud) 使用ServiceHost.AddServiceEndpoint添加自定义ProtoEndpointBehavior时,我收到以下异常:
System.ArgumentNullException:值不能为null.参数名称:System.Collections.Generic.Dictionary上的键
2.FindEntry(TKey key) at System.Collections.Generic.Dictionary2.ContainsKey(TKey键)位于System.ServiceModel.ServiceHostBase.ImplementedContractsContractResolver.ResolveContract(String contractName),位于System的System.ServiceModel.ServiceHostBase.ServiceAndBehaviorsContractResolver.ResolveContract(String contractName).位于My.Service.Business的System.ServiceModel.ServiceHostBase.AddServiceEndpoint(ServiceEndpoint端点)的System.ServiceModel.Description.ConfigLoader.LookupContract(String contractName,String serviceName)中的ServiceModel.Description.ConfigLoader.LookupContractForStandardEndpoint(String contractName,String serviceName). C:\ My\Produkter\My Utveckling\Solution\My.Service.Business\ServiceHandler.cs中的ServiceHandler.StartService(类型serviceType,String uri,SecureConnectionSettings secureConnectionSettings):第150行
这是代码的样子:
ServiceHost serviceHost = null;
Console.WriteLine("Creating service " + serviceType.FullName);
serviceHost = new MyServiceHost(serviceType, new Uri(uri));
var endPointAddress = "";
HttpBindingBase binding = null;
if (secureConnectionSettings != null && secureConnectionSettings.Enabled)
{
Console.WriteLine("Setting certificates");
X509Store store = new X509Store(secureConnectionSettings.CertificateStore, secureConnectionSettings.CertificateLocation);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindByThumbprint, secureConnectionSettings.Thumbprint, true);
store.Close();
if (certs.Count > 0)
serviceHost.Credentials.ServiceCertificate.SetCertificate(secureConnectionSettings.CertificateLocation,
secureConnectionSettings.CertificateStore,
X509FindType.FindByThumbprint,
secureConnectionSettings.Thumbprint);
else
throw new Exception("Could not finde certificate …Run Code Online (Sandbox Code Playgroud) 我正在开发Android应用程序.此应用程序应与蓝牙(BT)设备通信(发送一些字节).我在设备(Samsung Galaxy mini)上调试/运行此应用程序时遇到问题.当我创建一个BT插座并停止调试时,手机冻结,我必须通过取出电池重新启动它.如果运行此应用程序(来自Eclipse)一切正常,但当我尝试再次运行时,手机冻结和应用程序未安装.如果我尝试在第二次运行之前手动卸载此应用程序,请再次手机冻结.这是一个有问题的代码:
private final BluetoothDevice mmDevice;
private UUID uuid;
public ConnectionThread(BluetoothDevice device) {
Log.d(TAG, "create ConnectionThread");
uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
BluetoothSocket tmp = null;
mmDevice = device;
try {
tmp = mmDevice.createRfcommSocketToServiceRecord(uuid);
} catch (IOException e) { }
mmSocket = tmp;
socketConnected = true;
}
Run Code Online (Sandbox Code Playgroud)
这是线程的构造函数.当我评论这条线
tmp = mmDevice.createRfcommSocketToServiceRecord(uuid);
Run Code Online (Sandbox Code Playgroud)
手机没有冻结所以问题是创建套接字(不连接).每次调试或运行后重启手机都很烦人,我还要做很多工作.
如果我从手机(与Eclipse断开连接)运行此应用程序,它可以正常工作.任何想法可能是一个问题或如何解决它?谢谢.
我正在尝试在EF 4中为Oracle同义词(非实体)参数化原始SQL查询,我遇到了一些问题.根据我看到的一些例子,目前我正在做类似下面代码的事情:
string term="foo";
OracleParameter p = new OracleParameter("@param1", term);
object[] parameters = new object[] { p };
var model = db.Database.SqlQuery<ProjectTask>("SELECT * FROM (SELECT * FROM web_project_task_vw WHERE project_num like '%@param1%') WHERE rownum<=100", parameters).ToList();
Run Code Online (Sandbox Code Playgroud)
运行此操作不会返回任何结果.如果我用类似的东西替换参数
"SELECT * FROM web_project_task_vw WHERE project_num like '%"+term+"%'"
Run Code Online (Sandbox Code Playgroud)
它返回我期望的结果,但这显然是SQL注入风险.
任何人都可以指出我的参数应该如何在EF 4中为Oracle DB工作的正确方向?
谢谢.
如果我有一个清单List<KeyValuePair<string,string>>前.
["abc","123"]
["asc","123"]
["asdgf","123"]
["abc","123"]
Run Code Online (Sandbox Code Playgroud)
我怎么能分清这个清单呢?
首先,抱歉标题,但我想不出更好的事情......
我的问题可以通过简单的代码示例呈现:
public static class Test<T>
{
public static int GetInt(T source)
{
return Convert.ToInt32(source);
}
}
public static class Convert
{
public static int ToInt32(byte source)
{
return 30;
}
public static int ToInt32(object source)
{
return 10;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么Console.WriteLine(Test<byte>.GetInt(20));打印10,而不是30?
我一直认为.NET中的泛型在运行时由JIT解决.为什么然后抖动不够智能,找出ToInt32(byte)适合我们byte参数类型的方法?
此行为使Convert静态类方法在简单类型的装箱/拆箱操作中调用结果.