小编Ker*_*osh的帖子

工厂类使用泛型但没有基类

我得到了我认为可能是一个不寻常的问题(我已经搜索了很多答案,但我不认为我找到了一个).

我有从队列中读取的消息,并且根据消息类型包含需要反序列化为具体c#类的有效负载.这需要最终具体(我不能使用泛型)因为我使用表达式树对从队列到达的类执行评估.

基类如下所示:

public abstract class BaseRuleMessage<T>  
{
    public abstract Func<T, bool> CompileRule(Rule r, T msg);

    public T Deserialize(ClientEventQueueMessage message)
    {
        return JsonConvert.DeserializeObject<T>(message.Payload);
    }        

    public BaseRuleMessage()
    {
        RulesCompleted = new List<int>();
    }

    public IEnumerable<Rule> FilterRules(RuleGroup ruleGroup)
    {
        return ruleGroup.Rules.Where(item =>
            !RulesCompleted.Any(r => r.Equals(item.Id)));
    }
Run Code Online (Sandbox Code Playgroud)

我像这样实现基类:

 public class UiTransactionUpdate : BaseRuleMessage<UiTransactionUpdate>
{

    public override Func<UiTransactionUpdate, bool> CompileRule(Rule r, UiTransactionUpdate msg)
    {
        var expression = Expression.Parameter(typeof(UiTransactionUpdate));
        Expression expr = BuildExpr(r, expression, msg);
        return Expression.Lambda<Func<UiTransactionUpdate, bool>>(expr, expression).Compile();
    }
    public Guid TransactionId { get; …
Run Code Online (Sandbox Code Playgroud)

c# abstract-class factory-pattern

5
推荐指数
1
解决办法
135
查看次数

仅当fiddler正在运行时,才能访问XML提要

我试图理解为什么只有当我打开小提琴时才能对Feed进行简单的调用.

我查看了以下链接,但似乎没有一个答案适用:

除非fiddler正在运行,否则HttpWebRequest不起作用

HttpWebRequest仅在fiddler运行时有效

http://blogs.telerik.com/fiddler/posts/13-02-28/help!-running-fiddler-fixes-my-app-

我的代码非常简单,据我所知,它应该只用xml文件的内容填充变量:

using (var client = new WebClient())
{                    
    text = client.DownloadString(path);
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果我正在运行fiddler,这可以正常工作,但如果在fiddler未运行时运行它,则会因超时错误(?)而失败.

我可以直接从我的broswer访问xml文件的路径 - 因此权限/访问似乎也不是问题.

http://www.tfl.gov.uk/tfl/syndication/feeds/cycle-hire/livecyclehireupdates.xml
Run Code Online (Sandbox Code Playgroud)

Fiddler的RAW输出是:

HTTP/1.1 200 OK
Via: 1.1 varnish, 1.1 ZTMG01
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Transfer-Encoding: chunked
Age: 19
Date: Mon, 22 Dec 2014 15:23:47 GMT
Content-Type: text/xml
ETag: "dce1c05f259961aeac88cebcdfdbeebe"
Server: AmazonS3
x-amz-id-2: C6oNmRATZO4E7eNiyPhyCOhqT45Mb9Wp0XXaU8KsBQf84gYeNzM9OPAOa9YBNFsL4DGsPSEs5Cw=
x-amz-request-id: 0CE21B93AC8DDC15
Last-Modified: Mon, 22 Dec 2014 15:22:31 GMT
X-TTL-RULE: 8
X-Cacheable: Yes. Cacheable
X-TTL: 60.000
X-Backend: proxy
X-Varnish: 10.76.2.236
X-Backend-Url: http://s3-eu-west-1.amazonaws.com/tfl.pub/Serco/livecyclehireupdates.xml
X-Hash-Url: /tfl.pub/Serco/livecyclehireupdates.xml
Access-Control-Allow-Origin: * …
Run Code Online (Sandbox Code Playgroud)

c# xml webclient fiddler

0
推荐指数
1
解决办法
413
查看次数

标签 统计

c# ×2

abstract-class ×1

factory-pattern ×1

fiddler ×1

webclient ×1

xml ×1