小编Jus*_*tin的帖子

Datacontract例外.无法序列化

我有以下WCF DataContract:

[DataContract]
public class Occupant
{
    private string _Name;
    private string _Email;
    private string _Organization;
    private string _Badge;

    public Occupant(string name, string badge, string organization)
    {
        Name = name;
        Badge = badge;
        Organization = organization;
    }

    public Occupant(string name, string badge)
    {
        Value = name;
        Key = badge;
    }

    [DataMember]
    public string Key
    {
        get { return _Name; }
        set { _Name = value; }
    }

    [DataMember]
    public string Value
    {
        get { return _Badge; }
        set { _Badge …
Run Code Online (Sandbox Code Playgroud)

.net c# wcf

52
推荐指数
3
解决办法
4万
查看次数

如何在泛型集合上创建扩展方法

我有一个包含FrameworkElements的列表,我想创建一个名为MoveToTop的扩展方法.所有这一切都将接受属于该列表的项目并将其移动到列表的开头.我知道这可以在不使用扩展方法的情况下完成,但我希望它可以作为扩展方法实现.

我在尝试找出创建接受泛型参数的扩展方法的语法时遇到了麻烦.我知道这不正确,但如果有人能告诉我如何实现这一目标,我将不胜感激.

public static class Extensions
{
    public static void MoveToTop(this ICollection<T> sequence)
    {
        //logic for moving the item goes here.
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# oop

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

推送到Git服务器时无效的SSL证书

我正在Windows服务器上运行Gitblit,并且正在尝试将数据从网络上的另一台机器推送到存储库.我使用过SSL证书(不是自签名的,但我认为我公司签了?不确定它是如何工作的,但Chrome,IE等看到它已经过身份验证).

运行Gitblit的服务器已命名itscm,在开发人员的桌面上我使用此URL通过TortoiseGit推送数据:

git.exe push --progress  "https://itscm:8234/git/TestRepo.git" master
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

致命:无法访问' https:// itscm:8234/git/TestRepo.git / ':SSL证书问题:证书链中的自签名证书

当我在chrome中转到该地址时,我在页面上得到404,但我可以看到URL栏中的挂锁是绿色的.当我点击挂锁时,我看到身份已经过验证.我不明白我的浏览器如何将此证书视为有效,但当我尝试通过Git将数据推送到它时,它失败了.

git ssl credentials tortoisegit gitblit

27
推荐指数
3
解决办法
4万
查看次数

为什么AspNetCompatibilityRequirementsMode.Allowed修复此错误?

我正在寻找解决我与WCF的问题.我对WCF很新,所以我不确定究竟发生了什么.

我正在使用Visual Studio 2010并执行新网站 - > WCF服务.我创建了我的服务,在配置文件中,如果我设置aspNetCompatibilityEnabled="true",我会在通过我的网络浏览器访问服务时出现此错误.

The service cannot be activated because it does not support ASP.NET compatibility.
ASP.NET compatibility is enabled for this application. Turn off ASP.NET compatibility mode in the web.config
or add the AspNetCompatibilityRequirements attribute to the service type with RequirementsMode 
setting as 'Allowed' or 'Required'.
Run Code Online (Sandbox Code Playgroud)

我不明白这意味着什么.修复它aspNetCompatibilityEnabled="true"时为什么会导致此错误[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)].

对我来说,他们听起来像他们做同样的事情.此外,没有该属性,silverlight无法调用我的WCF方法.这是为什么?

如有必要,这是我的配置文件:

<?xml version="1.0"?>
<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <customErrors mode="Off"/>
  </system.web>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="LargeBuffer" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
      </basicHttpBinding>
    </bindings> …
Run Code Online (Sandbox Code Playgroud)

.net c# silverlight wcf web-services

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

将换行符附加到字符串除外的最佳方法

我一直在寻找迭代字符串列表的最佳/最干净的方法,然后创建一个由换行符分隔的字符串(除了最后一行).像这样:

String 1
String 2
String 3
Run Code Online (Sandbox Code Playgroud)

我在这里写了两个循环,在字符串的末尾有一个换行符(我想避免)和另一个没有的换行符.这个不仅对我来说不是"干净".我认为有一种更简单的方法可以使逻辑几乎与在字符串末尾有一个新行的示例中一样简单.

List<string> errorMessages = new List<string>();
string messages = "";

//Adds newline to last string. Unwanted.
foreach(string msg in errorMessages)
{
    messages += msg + "\n";
}

messages = "";
bool first = true;

//Avoids newline on last string
foreach (string msg in errorMessages)
{
    if(first)
    {
        first = false;
        messages = msg;
    }
    else
    {
        messages += "\n" + msg;
    }
}
Run Code Online (Sandbox Code Playgroud)

也许这是一厢情愿的想法,但我认为这是一个足够普遍的事情,可以保证更好的方式来实现我的目标.

.net c# string refactoring

26
推荐指数
4
解决办法
3万
查看次数

CSS"#id元素"是否也选择了孙子?

假设我有一个<div id="container">包含表格的各种元素.CSS选择器是否#container table选择了div中的所有表(包括孙子,曾孙等)?还是仅选择儿童?

另外,如果我想在容器div中选择第一个子div,我该怎么做?

html css css-selectors

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

Word的大小和寻址

我在记忆信息方面让自己感到高兴,而且我对Word的大小感到困惑.根据我的理解,Word不是通用定义的大小,而是由特定系统定义的大小(以字节数表示).

根据维基百科:

因此,具有32位存储器地址的处理器可以直接访问4 GiB的字节可寻址存储器.

这是否意味着32位处理器可以处理4,294,967,295个?32位窗口限制为4GB的RAM,但阅读一个单词的含义让我感到疑惑.Windows中的每个Word都等于1个字节吗?单词的大小是否可以是更大的字节数,32位处理器能够处理8GB,10GB,12GB甚至更多的内存?

architecture memory ram operating-system cpu-word

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

为什么python的字典迭代似乎与副本一起工作?

我很困惑python如何迭代这本词典.从python的文档中,itervalues返回字典值的迭代器.

dict = {"hello" : "wonderful", "today is" : "sunny", "more text" : "is always good"}

for x in dict.itervalues():
    x = x[2:]   

print dict
Run Code Online (Sandbox Code Playgroud)

这会打印出原始字典不变.这是为什么?如果我说位置x的值是"blabla",为什么不设置?

python iterator copy items

7
推荐指数
2
解决办法
4010
查看次数

试着理解静态在这种情况下是如何工作的

我正在看一些同事写的代码和我预期会发生的代码.这是代码:

public class SingletonClass
{
    private static readonly SingletonClass _instance = new SingletonClass();

    public static SingletonClass Instance
    {
        get { return _instance; }
    } 

    private SingletonClass()
    {
        //non static properties are set here
        this.connectionString = "bla"
        this.created = System.DateTime.Now;
    }
}
Run Code Online (Sandbox Code Playgroud)

在另一堂课中,我希望能够做到:

private SingletonClass sc = SingletonClass.Instance.Instance.Instance.Instance.Instance.Instance;
Run Code Online (Sandbox Code Playgroud)

它引用该类的相同实例.发生的事情是我只能拥有一个.Instance.我没想到的东西.如果Instance属性返回一个SingletonClass类,为什么我不能Instance在返回的类上调用该属性,依此类推?

.net c# oop

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

"提交已在进行中"尝试保存Telerik OpenAccess ORM中的更改

我一直试图弄清楚我的代码中是如何发生错误的.异常告诉我提交已在进行中,但除非调用SaveChanges是异步的,否则我看不出这是怎么回事.

我有一个Scheduler包含多个Task对象的类.每个Task都有一个BackgroundWorker在另一个线程中处理.然后,我在Task类中使用以下代码为此BackgroundWorker complete事件提供了一个事件处理程序:

private void TaskWorkCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    if (!(e.Result is TaskResult))
        throw new ArgumentException("Result must be a TaskResult class.");

    TaskComplete((TaskResult)e.Result);
}
Run Code Online (Sandbox Code Playgroud)

还在我这儿?所以我在我的任务类中有这个事件处理程序,它使用以下代码触发TaskComplete我在主Scheduler类中处理的事件:

private void TaskCompleted(object sender, TaskCompletedEvent e)
{
    Model.Task scheduledTask = entitySet.Tasks.First(x => x.TaskName == e.ClassName);
    TaskLog logMsg = new TaskLog()
    {
        //stuff here
    };

    scheduledTask.TaskLogs.Add(logMsg);
    entitySet.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

现在在这一点上,根据我的理解,我回到我的主线程中,因为我的后台工作中完成的工作已经完成.当我经常运行5个任务时,我在SaveChanges上得到一个例外,说提交已在进行中.我不明白这是怎么回事,因为我没有跨线程分享这个上下文.我能看到这种情况的唯一方法是SaveChanges是异步的(不是阻塞调用).我知道使用using语句将TaskCompleted中的代码包装起来,新的上下文会修复它,但我想知道原因.为什么不在目前的状态下工作.

最后一件事,我正在使用Telerik的OpenAccess ORM.

.net c# orm multithreading telerik-open-access

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