我试图在.net wcf服务(特别是支持Silverlight的wcf服务)中提出一个简单易用的设计模式来处理错误.如果在服务方法中抛出异常,silverlight应用程序将看到一个CommunicationException,指出"远程服务器返回错误:NotFound --->",可能还有一个堆栈跟踪,具体取决于您的设置,这完全没有用,因为它没有告诉你实际的错误,通常真正的错误不是"NotFound".
阅读Web服务和wcf服务和异常,您需要抛出soap/wcf标准异常,例如FaultException或SoapException.因此,对于wcf服务,您需要将每个方法包装在try catch中,捕获每个异常,将其包装在FaultException中并抛出它.至少这是我的理解,如果我错了,请纠正我.
所以我创建了我的设计模式:
[ServiceContract(Namespace = "http://MyTest")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class DataAccess
{
/// <summary>
/// Error class, handle converting an exception into a FaultException
/// </summary>
[DataContractAttribute]
public class Error
{
private string strMessage_m;
private string strStackTrace_m;
public Error(Exception ex)
{
this.strMessage_m = ex.Message;
this.strStackTrace_m = ex.StackTrace;
}
[DataMemberAttribute]
public string Message
{
get { return this.strMessage_m; }
set { this.strMessage_m = value; }
}
[DataMemberAttribute]
public string StackTrace
{
get { return this.strStackTrace_m; }
set …Run Code Online (Sandbox Code Playgroud) 我有一个存储过程,它选择1条记录.可以从不同PC上的几个不同应用程序调用存储过程.这个想法是存储过程带回了需要处理的下一条记录,如果两个应用程序同时调用存储过程,则不应该返回相同的记录.我的查询如下,我正在尝试尽可能高效地编写查询(sql 2008).它可以比这更有效地完成吗?
CREATE PROCEDURE GetNextUnprocessedRecord
AS
BEGIN
SET NOCOUNT ON;
--ID of record we want to select back
DECLARE @iID BIGINT
-- Find the next processable record, and mark it as dispatched
-- Must be done in a transaction to ensure no other query can get
-- this record between the read and update
BEGIN TRAN
SELECT TOP 1
@iID = [ID]
FROM
--Don't read locked records, only lock the specific record
[MyRecords] WITH (READPAST, ROWLOCK)
WHERE
[Dispatched] is null …Run Code Online (Sandbox Code Playgroud) 我们小组目前正在审查我们的工具集,并在源代码管理和项目管理软件之外寻找新的缺陷/问题跟踪软件.
对于问题跟踪,我们查看了bugzilla,fogbugz,bugtracker.net,sourcegear fortres和bugnet.
我对我们提出的清单不满意,所以我很想知道其他人在使用什么.
我们正在寻找安全的Active目录集成,虽然我们已经满足于Windows应用程序,可能优先考虑Web界面,视觉工作室集成也是一个奖励.我们需要确定缺陷的优先级,标记缺陷的版本,标记缺陷修复的版本,并希望能够围绕每个问题/缺陷进行讨论.我们还希望将项目分类为缺陷,增强请求等,并记录缺陷的变通方法.
非常相似的问题:
我喜欢h1元素,因为它指定内容是标题样式内容,但你不应该把图像或div之类的东西放在h1中,那么是否可以替换h1我可以放入其他标记?
我当前的HTML看起来像这样:
<div class="section">
<h1>
<div style="float:left">header text</div>
<div style="float:right">text</div>
<div style="clear:both;float:none;"></div>
</h1>
<div>body contents</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我喜欢h1,因为我可以使用div.section类为任何h1添加css样式,但是我不支持将div放入其中...
我在GridView控件的模板列中有一个DropDownList.GridView绑定到对象列表.每个对象都有一个int类型的属性,它对应于一个DropDownLists ListItems中的值.我可以通过在下拉列表中添加DataBind事件来以编程方式设置所选项目,但我想知道是否有办法通过在aspx标记中使用代码块来设置所选项目.
考虑以下可序列化类:
class Item {...}
class Items : List<Item> {...}
class MyClass
{
public string Name {get;set;}
public Items MyItems {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我希望序列化输出看起来像:
<MyClass>
<Name>string</Name>
<ItemValues>
<ItemValue></ItemValue>
<ItemValue></ItemValue>
<ItemValue></ItemValue>
</ItemValues>
</MyClass>
Run Code Online (Sandbox Code Playgroud)
请注意,元素名称ItemValues和ItemValue与类名称Item和Items不匹配,假设我无法更改Item或Items类,是否有任何原因可以通过修改MyClass类来指定我想要的元素名称?
如果我有一个对象需要存储在viewstate中,我可以做些什么来优化存储对象所需的大小?显然,存储最少量的数据将占用更少的空间,但除此之外,是否有方法来构建类,属性,属性等,这将影响序列化输出的大小?
我试图挂钩另一个应用程序的ExtTextOut和DrawTextExt GDI方法调用.
我知道我需要使用GetProcAddress在gdi32.dll中查找这些方法的地址,并在我想要挂钩我的函数地址的过程中覆盖地址.然后在我的函数中,我做我需要的,然后调用原始函数.
我想让这个钩子功能可用于.net应用程序,显然这可以通过创建一个"中间"非托管dll来执行挂钩,并且能够在.net端触发事件,以便新的功能可以写在托管环境中.我只是不确定如何实现这一点.有没有人有任何代码示例或信息链接?
如果我有这样的字符串:
"word1'word2'word3"
是否可以使用正则表达式替换将字符串更改为:
"word1 word3'word2'"
我知道word1和word3会是什么,但不知道word2会是什么,但它总是用单引号.
.net ×2
asp.net ×2
c# ×2
bug-tracking ×1
css ×1
data-binding ×1
exception ×1
hook ×1
html ×1
listitem ×1
locking ×1
regex ×1
sql-server ×1
transactions ×1
viewstate ×1
wcf ×1
web-services ×1
winapi ×1
windows ×1