我已经构建了一个Windows窗体客户端应用程序,它可以进行WCF调用.我希望能够在应用程序中显示实际的请求和响应,包括SOAP标头以及有关POST/Get的信息.有没有办法在客户端上配置跟踪侦听器并从客户端中使用它,在文本框中显示内容?
我已经配置了将消息输出到文件的跟踪.此配置在我的客户端应用程序上,因此它记录了它对wcf服务和响应所做的所有调用.因此添加了源代码,每个源代码都是一个XmlTraceListener,它处理写入xml日志文件.我现在要做的是利用客户端应用程序本身内的跟踪侦听器并写入文本框控件.
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="All">
<listeners>
<add name="xmlTraceListener" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging"
switchValue="All">
<listeners>
<add name="xmlTraceListener" />
</listeners>
</source>
</sources>
<sharedListeners>
<add name="xmlTraceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="ClientLogBasic.svclog" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
<!-- child of the <system.serviceModel> element -->
<diagnostics>
<messageLogging maxMessagesToLog="10000"
logEntireMessage="true"
logMessagesAtServiceLevel="true"
logMalformedMessages="true"
logMessagesAtTransportLevel="true">
<filters>
<clear/>
</filters>
</messageLogging>
</diagnostics>
Run Code Online (Sandbox Code Playgroud)
现在,我已经有消息日志记录工作,我创建了自己的跟踪侦听器,可以写入文本框:
public class MyTraceListender : System.Diagnostics.TraceListener
{
private TextBox txt_m;
public MyTraceListender(TextBox txt)
: base()
{
txt_m = txt;
}
private delegate void delWrite(string sText);
public override …Run Code Online (Sandbox Code Playgroud) 我正在尝试根据属性值订购商品:
<xsl:apply-templates select="Question">
<xsl:sort order="ascending" select="@Value"></xsl:sort>
</xsl:apply-templates>
Run Code Online (Sandbox Code Playgroud)
这确实对它们进行了排序,但我可以得到像1,2,3,...... 10,11,... 20这样的值,它会命令它们1,10,11,... 2,20 ...... 3.等
我也可以像1.A,1.B,2.A,2.B值等
如何在这个优先级中订购这些值以考虑数字内容和字母?
我创建了一个SQL服务器压缩数据库(MyDatabase.sdf),并用一些数据填充它.然后我运行SQLMetal.exe并生成一个linq到sql类(MyDatabase.mdf)
现在我试图从一个表中选择相对简单的选择的所有记录,我得到错误:
"解析查询时出错.[令牌行号= 3,令牌行偏移= 67,令牌错误= MAX]"
这是我的选择代码:
public IEnumerable<Item> ListItems()
{
MyDatabase db_m = new MyDatabase("c:\mydatabase.sdf");
return this.db_m.TestTable.Select(test => new Item()
{
ID = test.ID,
Name = test.Name,
RequestData = test.RequestData != null ? test.RequestData.ToString() : null,
Url = new System.Uri(test.Uri)
}.AsEnumerable();
}
Run Code Online (Sandbox Code Playgroud)
我已经读过Linq to SQL与Sql Compact一起工作,我还需要做一些其他的配置吗?
我有一个用于验证日期的正则表达式:
^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$
Run Code Online (Sandbox Code Playgroud)
工作得很好,但我使用asp.net regex验证器在整个地方使用它,我想最小化它,所以我可以减少页面大小.它适用于dd/mm/yyyy格式并处理闰年.我正在寻找一个更简洁的正则表达式声明.