我正在阅读Windows的Silverlight实现与MAC实现之间的差异列表.哪个可以在这里找到.
虽然一些差异显然与平台差异等有关.有些我只是想知道为什么它们会有所不同.如果有人对此有一些想法或实际的具体信息,我很想听听你的意见.
以下是一些看似奇怪的事情,特别是我列表中的最后一点,这实际上是促使我发布这个问题.
现在,鉴于您的代码是根据通常理解的最佳实践编写的,因此这些都不是严重的差异.但是,我想知道为什么我认为可能不正确的事情是行为合同的一部分,虽然在.NET中不明确,就像我将无效的文化字符串传递给构造函数时所期望的那样,并不能提供一致的行为平台,这似乎是相当随意的,只是在没有充分理由的情况下寻找可移植性问题,或者在那里?
我有一个自定义活动,其中一个参数是一个字符串.但是,我不希望设计人员输入任意字符串,而是希望向设计人员提供带有选项列表的Combobox,这些选项是动态的,并从数据库加载到List <>集合中.
我的问题是我不知道如何将设计器中的Combobox绑定到此列表并将选择设置为活动的in参数.在视觉上我让活动设计师工作,这只是一步.
我有以数据形式从Web服务返回的数据,ObservableCollection<string>我希望将集合绑定到只读,TextBox以便用户可以选择数据并将其复制到剪贴板.
要将集合绑定到我创建的TextBox的Text属性,该TextBox IValueConverter将集合转换为文本字符串.这似乎有效,除了它只工作一次,就好像绑定不能识别对Observable集合的后续更改.这是一个简单的应用程序,重现问题,只是为了确认绑定工作正常我还绑定到`ListBox'
这是因为Text绑定简单不处理集合的更改事件吗?
一个选项当然是我处理集合更改并将它们传播到TextBox绑定的Text属性,这很好,但我想理解为什么在我看来是一个明显的解决方案是不行的正如所料.
XAML
<Window x:Class="WpfTextBoxBinding.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfTextBoxBinding"
Title="MainWindow" Height="331" Width="402">
<StackPanel>
<StackPanel.Resources>
<local:EnumarableToTextConverter x:Key="EnumarableToTextConverter" />
</StackPanel.Resources>
<TextBox Text="{Binding TextLines, Mode=OneWay, Converter={StaticResource EnumarableToTextConverter}}" Height="100" />
<ListBox ItemsSource="{Binding TextLines}" Height="100" />
<Button Click="Button_Click" Content="Add Line" />
</StackPanel >
</Window>
Run Code Online (Sandbox Code Playgroud)
代码背后
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using System.Windows;
using System.Windows.Data;
using System.Globalization;
namespace WpfTextBoxBinding
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : …Run Code Online (Sandbox Code Playgroud) 我有以下代码(示例),我真的不喜欢这么多'if'检查:
public enum Flags
{
p1 = 0x01, // 0001
p2 = 0x02, // 0010
p3 = 0x04, // 0100
p4 = 0x08 // 1000
};
public static void MyMethod (Flags flag)
{
if ((flag & Flags.p1) == Flags.p1)
DoSomething();
if ((flag & Flags.p2) == Flags.p2)
DosomethingElse();
if ((flag & Flags.p3) == Flags.p3)
DosomethingElseAgain();
if ((flag & Flags.p4) == Flags.p4)
DosomethingElseAgainAndAgain();
}
MyMethod(Flags.p1 | Flags.p3);
Run Code Online (Sandbox Code Playgroud)
有没有办法,我可以使用'switch'语句.也许如果我将它们转换为字符串,或使用数组?
我现在已经为此吵了几天了.
我只是尝试使用基本HTTP身份验证将用户名/密码传递到我的RESTful服务中.其他一切都很棒!
这是我的web.config看起来像:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
</system.webServer>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="">
<security mode="Message">
<message clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<!--
Configure the WCF REST service base address via the global.asax.cs file and the default endpoint
via the attributes on the <standardEndpoint> element below
-->
<standardEndpoint name="" helpEnabled="true" defaultOutgoingResponseFormat="Json" automaticFormatSelectionEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceCredentials>
<userNameAuthentication …Run Code Online (Sandbox Code Playgroud) 我必须在C#中完成一个项目才能找到每个java类的方法数量。
我可以使用c#正则表达式在.java文件中找到所有方法,但是我想要的是查找每个类(包括内部类)的方法数量。谁能帮我。
string[] lines = File.ReadAllLines(file);
int countLine = 0;
int AllCount = 0;
foreach (string line in lines)
{
countLine = MethodsCount(line);
AllCount = AllCount + countLine;
}
label5.Text = AllCount.ToString();
Run Code Online (Sandbox Code Playgroud)
这是方法计数方法。
private int MethodsCount (string LineOperator)
{
int count = 0;
string[] words = LineOperator.Split('{');
foreach (string word in words)
{
if (Regex.IsMatch(word, @"(static\s|final\s)?(public|private|internal)(\sstatic|\sfinal)?\s(int|boolean|void|double|String|long|String\[\]|String\[\]\[\])?\s([a-z]|[A-Z]+[a-z]+|[a-z]+[A-Z]+)+(\s)*\((\s|\n|\r)*"))
{
count = count + 1;
}
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
如果我们考虑一堂课
public class vehicle {
public method1() {
---------
}
public method2() { …Run Code Online (Sandbox Code Playgroud) 我需要枚举所有打开的窗口并获取它们的标题,但问题是某些窗口属于同一个进程但是属于另一个被阻塞的线程(等待互斥锁).因此,我不能将GetWindowText用于属于我自己进程的窗口,因为这将导致SendMessage调用,这将阻止我的代码执行(因为它将等待被阻塞线程的relpy).
顺便说一下这是一篇关于GetWindowText内部如何工作的有趣文章:http://blogs.msdn.com/b/oldnewthing/archive/2003/08/21/54675.aspx
作为一个解决方案决定使用SendMessageTimeout到窗口,以检索其标题,但我无法使其工作.我在做的是:
[DllImport("User32.dll")]
public static extern int SendMessageTimeout(
IntPtr hWnd,
int uMsg,
int wParam,
int lParam,
int fuFlags,
int uTimeout,
out StringBuilder lpdwResult);
...
StringBuilder sb = new StringBuilder(256);
int result = Win32API.SendMessageTimeout(
hWnd,
0x0D /*WM_GETTEXT*/,
256,
0,
10 /*SMTO_ABORTIFHUNG | SMTO_NOTIMEOUTIFNOTHUNG*/,
500,
out sb);
Run Code Online (Sandbox Code Playgroud)
但我总是得到0表示函数失败,而sb总是为空.有任何想法吗?非常感谢.
下面的代码无法捕获异常.
确实 catch 无法赶上其发生在该函数的异常?
try
{
Arche.Members.Feedback.FeedbackBiz_Tx a =
new Arche.Members.Feedback.FeedbackBiz_Tx();
a.AddFreeSubscriptionMember(
itemNo, buyerID, itemName,
DateTime.Today,DateTime.Today);
}
catch(Exception ex)
{
RegisterAlertScript(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)
...
public void AddFreeSubscriptionMember(
string itemNo, string buyerID, string itemName,
DateTime fsStartDate, DateTime fsEndDate)
{
FeedbackBiz_NTx bizNTx = new FeedbackBiz_NTx();
if (bizNTx.ExistFreeSubscription(buyerID, itemNo))
{
throw new Exception("Exception.");
}
}
Run Code Online (Sandbox Code Playgroud)