小编Sté*_*ane的帖子

WCF 抛出 SfxServerDidNotReply 错误

我们正在开发一个 Silverlight 4/5 应用程序,该应用程序通过由 Windows 服务托管的 NetTcp WCF 服务与服务器进行通信。

在某些情况下,我们会收到SfxServerDidNotReply错误

这在网上几乎没有记录。遇到同样错误的人还没有在任何地方发布任何答案。

这是一个没有给出答案的 MSDN 线程。

我们还可以在这个ServiceChannel.cs类中找到参考。但这段代码似乎仅在通道为双向时才会抛出异常,而我们的情况并非如此。

此外,此错误发生在客户端,监控服务服务器端没有显示任何内容。

任何想法?这里有 WCF 专家吗?

silverlight wcf nettcpbinding

5
推荐指数
0
解决办法
1958
查看次数

为什么我不能将一个隐式运算符从Base类写入C#中的Derived类?

public class Derived : BaseClass
{
    public Derived(string name) : base(name) {}

    public static implicit operator BaseClass(Derived derived)
    {
        return new BaseClass(derived.ColorHex);
    }

    public static implicit operator Derived(BaseClass baseclass)
    {
        return new Derived(baseclass.name);
    }
}
Run Code Online (Sandbox Code Playgroud)

这不行.为什么不允许?
可以写出有必要的逻辑,特别是在从基础转换为派生的逻辑时.

编辑:更改了问题的标题

c# operators

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

使用Structuremap更改范围的多个构造函数?

为了说明问题,这是我的设置的简化版本.我有一个像这样的工厂:

public interface IFactory{ }

public class Factory : IFactory
{
    public Factory()
    {
        Console.WriteLine("parameterless");
    }

    //public Factory(int i)
    //{
    //    Console.WriteLine("with parameter : {0}", i);
    //}

}
Run Code Online (Sandbox Code Playgroud)

测试它的程序是一个consoleApp.足以证明我的观点.

static void Main(string[] args)
{
     Init();
     var factory1 = ObjectFactory.GetInstance<IFactory>();
     var factory2 = ObjectFactory.GetInstance<IFactory>();
     var factory3 = ObjectFactory.GetInstance<IFactory>();
     Console.Read();
 }
Run Code Online (Sandbox Code Playgroud)

我在我的Init静态方法中设置了strucutreMap.

  public static void Init()
        {
            ObjectFactory.Initialize(x =>
            {
                 //insert Initialization code here.
            });
        }
Run Code Online (Sandbox Code Playgroud)

如果我只有一个构造函数并设置StructureMap,如下所示:

x.For<IFactory>().Use<Factory>();
Run Code Online (Sandbox Code Playgroud)

工作完美,输出显示无
参数无
参数无
参数

每次调用都会构建一个新实例.

现在,如果我取消注释第二个构造函数,但我想使用无参数构造函数,并使用相同的默认生活方式.我该怎么办?

我试过了:

x.SelectConstructor<IFactory>(() => new Factory());
x.For<IFactory>().Use<Factory>();
Run Code Online (Sandbox Code Playgroud)

它不起作用:缺少InstanceKey的请求实例属性"i"

如果我喜欢这样: …

.net structuremap ioc-container object-lifetime

4
推荐指数
1
解决办法
2094
查看次数

根据查询字符串/派生控制器注入不同的存储库,并根据控制器类型/ ASP.NET MVC注入存储库

我有一个搜索表单,可以在不同的提供商搜索.我开始时有一个基本控制器

public SearchController : Controller
{

    protected readonly ISearchService _searchService

    public SearchController(ISearchService searchService)
    {
        _searchService= searchService;
    }

    public ActionResult Search(...)
    {
        // Use searchService to query and return a view.
    }

}
Run Code Online (Sandbox Code Playgroud)

和儿童控制器

TwitterController : SearchController
{
    ...
}

NewsController : SearchController
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我使用StructureMap在控制器中插入所有依赖项.通过此设置,我可以根据正在实例化的控制器的类型更改SearchService.

x.For<ISearchService>().ConditionallyUse(o =>
      {
            o.TheDefault.Is.OfConcreteType<NewsSearchService>();

            o.If(c => c.ParentType == typeof(TwitterController))
             .ThenIt.Is.OfConcreteType<TwitterSearchService>();

             ...

      });
Run Code Online (Sandbox Code Playgroud)

这甚至允许我为每个控制器设置不同的视图,(只是放置相应的文件夹(Twitter,新闻......),而父控制器仍在处理所有搜索,只需简单

return View(results) 
Run Code Online (Sandbox Code Playgroud)

它显示特定于推特,新闻或其他的正确视图

现在这很酷,看起来很棒,我只有一个表单,不同的视图显示在同一页面的选项卡中.这就是这种方法开始变得复杂的地方.表单必须发布到/ Twitter以在Twitter中搜索,到/新闻搜索新闻...这意味着我应该根据我的标签更改表单的操作参数,并在表单返回时显示正确的选项卡取决于..网址?疯狂随之而来.

如果你已经建立了这样的东西或知道什么是最好的方法,欢迎提出建议.

现在我认为使用表单中的参数并发布到单个控制器会减少痛苦.我正在考虑根据此参数注入正确的SearchService.什么是最好的方法?我想过使用模型活页夹,

所以我的ActionMethod看起来像这样:

public ActionResult Search(ISearchService service, Query query)
{
    var results = service.Find(query);
}
Run Code Online (Sandbox Code Playgroud)

但我认为需要在ModelBinder中进行这样的调用 …

asp.net-mvc design-patterns dependency-injection

4
推荐指数
1
解决办法
1624
查看次数

更好的方法断言用户数组中的所有user.name都使用rspec以前缀开头?

这就是我所拥有的.那种工作.

it "should filter by name" do
  users = users.search(:name => "s")
  users.each {|u| 
    u.name.should be_starts_with("s")
  } 
end
Run Code Online (Sandbox Code Playgroud)

但是,rspec返回的错误消息真的很差......

期望starts_with?("s")返回true,得到错误

有没有办法获得更精确的消息,显示失败的元素,或至少它的索引?

ruby unit-testing rspec

3
推荐指数
1
解决办法
513
查看次数

从Asp.net MVC中的ActionMethod返回XML的首选方法是什么?

我正在显示异步加载数据的图表,因为搜索是获取数据的工作非常繁重.数据必须以XML格式返回,以使图表库满意.
我的ActionMethods返回一个ContentResult,其类型设置为text/xml.我使用Linq to XML构建我的Xml并调用ToString.这很好但是测试并不理想.
我有另一个想法来实现这一点,即返回一个使用XSLT View引擎构建我的XML的视图.

我很好奇,我总是试图以"正确的方式"做事.那你们怎么处理这样的场景呢?

您是否实现了不同的ViewEngine(如xslt)来构建XML,或者在控制器内部构建XML(或者为控制器提供服务)?

编辑:

由于我需要将数据传递给图表库,我必须遵循他们的xml结构.他们的符号不是我想要建立我的模型类的方式.这就是为什么我自己使用Linq to XML构建XML并想知道模板是否会更好.
简单的序列化不是我想要的

.net xml asp.net-mvc

2
推荐指数
1
解决办法
886
查看次数

从c ++函数返回一个字符串

我是初学者,我一直在读一本关于C++的书,我正在写一个关于函数的章节.我写了一个来反转一个字符串,将它的副本返回给main并输出它.

string reverseInput(string input);

int main()
{
    string input="Test string";
    //cin>>input;
    cout<<reverseInput(input);
    return 0;
}

string reverseInput(string input)
{
    string reverse=input;
    int count=input.length();
    for(int i=input.length(), j=0; i>=0; i--, j++){
        reverse[j]=input[i-1];
    }
    return reverse;
}
Run Code Online (Sandbox Code Playgroud)

以上似乎都有效.更改以下代码时会发生此问题:

string input="Test string";
Run Code Online (Sandbox Code Playgroud)

至:

string input;
cin>>input;
Run Code Online (Sandbox Code Playgroud)

在此更改之后,反向函数仅返回第一个输入字的反转,而不是整个字符串.我无法弄清楚我哪里出错了.

最后,是否有更优雅的方法通过使用引用来做到这一点,而无需复制输入,以便输入变量本身被修改?

c++ string words function

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

如何在golang中初始化指针指针?

如何使用双指针字段初始化结构?我试图初始化一个结构如下:

type atype struct {
  val string
}

a := &struct {
    StringValue string
    Pointer **atype
}{
    StringValue: "FOO",
//this is the relevant bit
    Pointer : &(&atype{ 
      val: "test"
    })
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误: invalid pointer type **basicAppConfig for composite literal

我的逻辑有什么问题?我把指针指向一个指向值的指针.

我也试过用

reflect.PtrTo(&atype{
    val: "string"
})
Run Code Online (Sandbox Code Playgroud)

没有成功...

go

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

在多线程应用程序中获取唯一的文件名

我需要在多线程应用程序中构建一个唯一的文件名,该文件序列化磁盘上的一些数据.我可以使用什么方法来确保唯一的名称.该应用程序之前没有多线程,并且正在使用Ticks.当使用多个线程时,它失败的速度比我预期的要快得多.我现在将CurrentThreadId添加到文件名中,应该这样做

string.Format("file_{0}_{1}.xml", DateTime.Now.Ticks, Thread.CurrentThread.ManagedThreadId)
Run Code Online (Sandbox Code Playgroud)

这样做有什么"聪明"的方法吗?

c# multithreading file unique

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