小编san*_*ngh的帖子

从WCF返回多个响应

我在服务中有一个WCF服务和一个名为GetStudentList()的方法.当它返回单个响应时工作正常.这样的事情

  [WebGet(ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
List<Student> GetStudentList();
Run Code Online (Sandbox Code Playgroud)

但我想返回多个响应,即xml和json都是这样的

  [WebGet(ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
[WebGet(ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
List<Student> GetStudentList();
Run Code Online (Sandbox Code Playgroud)

有可能吗?如果是,那怎么样?

c# wcf

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

为什么密封类不允许是泛型类型约束?

我只是想知道为什么密封类不允许是泛型类型约束?

假设我在c#中有一个简单的代码片段,如下所示

 public sealed class Base
{
    public Base() { }
}

public class Derived<T>
        where T : Base
{
    public Derived() { }
}
Run Code Online (Sandbox Code Playgroud)

当我实例化Derivedclass时,我得到'Base'不是一个有效的约束.用作约束的类型必须是接口,非密封类或类型参数.

c# generics

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

未正确配置基本HTTP绑定

我已经使用wsHTTPBinding配置了WCF服务,但即使这样我也得到了错误

Contract requires Session, but Binding 'BasicHttpBinding' doesn't support it or isn't configured properly to support it.
Run Code Online (Sandbox Code Playgroud)

这是服务合同定义

<ServiceContract(SessionMode:=SessionMode.Required)>
Public Interface IPrivateService
Run Code Online (Sandbox Code Playgroud)

这是服务实现定义

<ServiceBehavior(InstanceContextMode:=InstanceContextMode.PerSession)>
Public Class PrivateService
    Implements IPrivateService
Run Code Online (Sandbox Code Playgroud)

这是配置设置

<services>
    <service behaviorConfiguration="behaviorAction" name="Viking.Service.PrivateService">
            <endpoint address="RequiredService" binding="wsHttpBinding" bindingConfiguration="bindingAction" contract="Viking.Service.IPrivateService">
              <identity>
                <dns value="localhost"/>
              </identity>
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
          </service>
</services>
<bindings>
          <wsHttpBinding>
            <binding name="bindingAction" transactionFlow="false" sendTimeout="00:30:00" receiveTimeout="00:30:00">
              <reliableSession enabled="true"/>
            </binding>
          </wsHttpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)

真正感谢任何关于这个问题的建议.

wcf wcf-4

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

调用Func <int>时为什么会出错?

我在C#中有以下代码片段:

var actions = new List<Func<int>>();

IEnumerable<int> values = new List<int> { 1, 2, 3 };

foreach (int value in values)
{
    actions.Add(() => value * value);
}

foreach (var action in actions)
{
    Console.WriteLine(action()); ;
}

Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

它运行正常,但我没有得到我期望的结果.

实际结果

9,9,9

预期结果

1,4,9

为什么我没有得到我期望的结果?

c# lambda

6
推荐指数
2
解决办法
299
查看次数

多个返回值的元组或输出参数?

我想从c#中的方法返回多个参数.我只是想知道哪个更好或者是元组?

static void Split (string name, out string firstNames, out string lastName)
{
    int i = name.LastIndexOf (' ');
    firstNames = name.Substring (0, i);
    lastName   = name.Substring (i + 1);
}


static Tuple<string,string> Split (string name)
{
//TODO
}
Run Code Online (Sandbox Code Playgroud)

c#-4.0

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

Task类的实例(Task.Factory.StartNew或TaskCompletionSource)

这可能是一个非常基本的问题,但我只想确保自己能够做到这一点.今天我正在挖掘TPL库,发现有两种方法可以创建Task类的实例.

我一路走来

 Task<int> t1 = Task.Factory.StartNew(() =>
                {
                    //Some code
                    return 100;

                });
Run Code Online (Sandbox Code Playgroud)

方式二

  TaskCompletionSource<int> task = new TaskCompletionSource<int>();
  Task t2 = task.Task;
  task.SetResult(100);
Run Code Online (Sandbox Code Playgroud)

现在,我只是想知道这一点

  1. 这些实例之间有什么区别吗?
  2. 如果是,那么什么?

c# multithreading task-parallel-library

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

<img rel="nofollow noreferrer" src ="">是否会影响性能?

我只是想知道是否<img src="">在asp.net中伤害了性能?如果是,那么如何,以及什么是更好的解决方案?

编辑

我想补充一些细节: - 如果开发人员错过了src标签或服务器中缺少图像(例如服务器中缺少a.jpg)

<img src="Images/a.jpg">
Run Code Online (Sandbox Code Playgroud)

编辑

我问了这个问题,因为最近我遇到了一个问题,我们的页面只是因为服务器中缺少fav.ico而导致双重后退.

html asp.net

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

无法在此范围内声明局部变量[Linq/Lambda表达式]

我在c#中有以下代码片段

static void Main()
{
    var numbers = new[] { 1, 2, 3, 4, 5, 6 };

    var ngt5 = numbers.Where(n => n > 5);

    var n = ngt5.First().ToString();

    Console.WriteLine(n, numbers);
}
Run Code Online (Sandbox Code Playgroud)

当我编译上面的代码时,我得到以下错误

名为"n"的局部变量不能在此范围内声明

c# linq

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

GridView中的Row_DataBound或Row_Created事件

我怀疑Row_DataBoundRow_Created事件:

  1. Row_DataBoundRow_Created事件有什么区别?

  2. 在这两个事件之间进行选择的参数是什么?

c# asp.net

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

如何在c#中填写RSAParameters值

我在我的项目中使用下面的代码进行加密,一切正常.

RSACryptoServiceProvider x_alg = new RSACryptoServiceProvider(  );

// export only the public key 
RSAParameters x_public_params = x_alg.ExportParameters(false);

// export the private key 
RSAParameters x_private_params = x_alg.ExportParameters(true);
Run Code Online (Sandbox Code Playgroud)

现在客户端更改了要求,并且他希望将所有RSAParameters值存储到配置文件中,并提供以下详细信息用于演示

<project name="netCard Server1">
  <key length="256"></key>
  <D length="64">00000000000000000000000000000000000000000000000000000000000019C5</D>
  <DP length="32">00000000000000000000000000000061</DP>
  <DQ length="32">00000000000000000000000000000065</DQ>
  <Exponent length="6">000DCD</Exponent>
  <InverseQ length="32">0000000000000000000000000000003B</InverseQ>
  <Modulus length="64">0000000000000000000000000000000000000000000000000000000000002C95</Modulus>
  <P length="32">00000000000000000000000000000065</P>
  <Q length="32">00000000000000000000000000000071</Q>
  <text length ="64">0123456789ABCDEF111111111111111125FE2222222222222233333333334444</text>
  <cipher length ="64">0000000000000000000000000000000000000000000000000000000000000000</cipher>
</project>
Run Code Online (Sandbox Code Playgroud)

现在,问题是当我导入RSAParameters值时,我收到了错误的数据异常

c# rsa public-key-encryption

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