小编cod*_*zen的帖子

WCF DataContractSerializer无法获取合同属性...为什么不呢?

我有以下类型,可以在WCF中用作消息合同:

[MessageContract(IsWrapped = true, 
                 WrapperNamespace = "http://example.com/services", 
                 WrapperName = "EchoRequest")]
public class EchoRequest
{
    public EchoRequest() { }
    public EchoRequest(String value)
    {
        Value = value;
    }

    [MessageBodyMember(Name = "Value", 
                       Namespace = "http://example.com/services", 
                       Order = 0)]
    public String Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当我使用svcutil.exe生成此类型的代理时,我将获得一个客户端,该客户端能够与托管它的服务进行通信,并且元素上的XML名称空间根据Message Contract属性正确。

当我Message.CreateMessage(...)在其实例上使用时,名称空间将还原为默认名称(http://schemas.datacontract.org/2004/07 / ...)。当我使用的实例时DataContractSerializer,也会发生同样的事情。我尝试将名称空间传递给DataContractSerializer构造函数,并且只有包装器包含在名称空间中:

var requestMessage = new EchoRequest("hello, world!");
var serializer = new DataContractSerializer(typeof(EchoRequest), 
                                            "EchoRequest", 
                                            "http://example.com/services");
var stream = new MemoryStream();
serializer.WriteObject(stream, requestMessage); …
Run Code Online (Sandbox Code Playgroud)

wcf datacontract datacontractserializer messagecontract

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

如果没有找到任何内容,为什么Session.Load <User>(id)不返回null?

当我尝试使用ID加载实体时:

Session.Load<User>(21);
Run Code Online (Sandbox Code Playgroud)

我得到一个'没有给定标识符存在的行'.

在我的代码中,我检查null如:

if(user == null)
Run Code Online (Sandbox Code Playgroud)

我怎么想知道该行是否不存在,或者如何让它返回null呢?

nhibernate

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

.Net中的单例模式是不可能的?

我有一个非常有趣的情况,我已经发现使用.net框架(任何版本)都不可能使用Singleton模式

看下面这段代码

namespace SingletonPattern
{
    class Singleton
    {
    private static readonly Singleton instance = new Singleton();
    private static int mcount = 0;

    private Singleton() {

        mcount += 1;
        Console.WriteLine("Creating {0} instances of Singleton Class", mcount.ToString());
    }

    public static Singleton Instance
    {
        get
        {
            return instance;
        }
    }
}

class program
{
    static void Main()
    {
        for (int i = 0; i < 1000; i++)
        {
            System.Activator.CreateInstance(Type.GetType("SingletonPattern.Singleton"), true);
        }

        Console.ReadLine();


        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在System.activator的帮助下,任何好友都可以打破单件模式.

谁有风险呢?

任何编写一些许可组件的人,其中许可证是作为单例模式实现的.

任何基于服务器的代码都使用Singleton模式.

也许我错了或者我的发现没有意义,但我只想分享并想知道你的看法?

.net singleton design-patterns

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

C# 中的多行文本框调整大小

我有两个多行文本框在 splitContainer 中分开。当我向左或向右拖动分隔符时,我希望文本框相应地调整大小。我该怎么做呢?我正在使用 Microsoft Visual C# 2008 Express Edition。谢谢。

c# textbox multiline splitcontainer winforms

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

WPF:选择所有文本并将焦点设置为ComboBox的可编辑文本框

我有一个WPF ComboBox,其IsEditable属性绑定到一个视图模型,可以打开和关闭它.当它打开时,我想给焦点ComboBox并选择编辑中的所有文本TextBox.

我无法看到最好的成就.我应该替换基类的ControlTemplateComboBox类,并提供所需的属性,使用附加属性还是其他方法?

wpf combobox focus

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

c#DateTime,Trim而不转换为字符串

如何DateTime在c#中"修剪" 属性的值?

例如,当我收到日期时,格式为"10/1/2010 00:00:00".

如何在没有将其转换为字符串的情况下"修剪"'时间'00:00:00?

因为我使用类型的属性DateTime来操作它,所以我不需要转换为String.

任何帮助表示赞赏.

.net c# sql-server

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

访客模式的变化:为什么不将第二次调度移动到访问者的"访问"方法中?

介绍

显然,我在整个程序员生活中一直在做一个"非正统的"访客模式.

是的,我从Visitor的Visit方法发送到具体的复合元素访问方法.

我认为这就是我学习它的方法,但是现在我找不到它的任何例子,我从中学到的来源已经消失了.

现在,面对压倒性的证据表明具体的元素调度进入复合元素的Accept方法,我想知道我这样做的方式至少有一些优势.在我看来,两个优点是:

  1. 我有一个地方可以决定如何派遣:基地访客.
  2. 我可以添加新的复合元素类型,并让基本访问者忽略它们,但派生的访问者可以覆盖Visit它们来处理它们.

例子

这是基本的Composite/Visitor模型:

// "Unorthodox" version
public class BaseVisitor 
{
    public virtual void Visit(CompositeElement e)
    {
         if(e is Foo)
         {
             VisitFoo((Foo)e);
         }
         else if(e is Bar)
         {             
             VisitBar((Bar)e);
         }
         else
         {
             VisitUnknown(e);
         }
    }

    protected virtual void VisitFoo(Foo foo) { }
    protected virtual void VisitBar(Bar bar) { }
    protected virtual void VisitUnknown(CompositeElement e) { }
} 

public class CompositeElement 
{
    public virtual void Accept(BaseVisitor visitor) { } 
} …
Run Code Online (Sandbox Code Playgroud)

design-patterns visitor-pattern

3
推荐指数
2
解决办法
3506
查看次数

为什么UIElement.MoveFocus()不将焦点移动到ListBox中的下一个兄弟元素?

我有以下可视树:

<DockPanel>
    <TextBox Name="ElementWithFocus" DockPanel.Dock="Left" />
    <ListBox DockPanel.Dock="Left" Width="200" KeyUp="handleListBoxKeyUp">
        <ListBoxItem>1</ListBoxItem>
        <ListBoxItem>4</ListBoxItem>
        <ListBoxItem>3</ListBoxItem>
        <ListBoxItem>2</ListBoxItem>
    </ListBox>
    <TextBox DockPanel.Dock="Left" />
</DockPanel>
Run Code Online (Sandbox Code Playgroud)

handleListBoxKeyUp 如下:

private void handleListBoxKeyUp(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        ((UIElement)sender).MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
    }
}
Run Code Online (Sandbox Code Playgroud)

ListBox有键盘焦点(实际上是ListBoxItem我猜)时,按下Enter将焦点移动到第一个ListBox而不是下面的项目TextBox.为什么会发生这种情况,我怎样才能获得EnterTab这里一样的关键?

.net wpf keyboard-events

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

Xaml 获取状态栏停靠在底部

我无法让我的状态栏显示在底部。当我将它停靠在底部时,它不应该这样工作吗?

<DockPanel>
    <Menu DockPanel.Dock="Top">
        <MenuItem Header="File">
            <MenuItem Header="Open" />
            <MenuItem Header="Save As" />
            <MenuItem Header="Save" />
            <MenuItem Header="Exit" />
        </MenuItem>
    </Menu>
    <ToolBarPanel DockPanel.Dock="Left">
        <Button>Næste</Button>
        <Button>Frem</Button>
    </ToolBarPanel>
    <RichTextBox DockPanel.Dock="Right"></RichTextBox>
    <StatusBar DockPanel.Dock="Bottom">test</StatusBar>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)

c# xaml

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

如何解决 Windows 中的“此环境变量太大”错误?

我想在 Windows 10 中设置一个环境变量,但它失败并出现错误:

这个环境变量太大了。此对话框允许设置最多 2047 个字符的值。

我正在学习React-Native并使用android studio,我想在我的 %PATH% 环境变量中包含abd.exe的路径。

我试图通过删除 PATH 变量中的一些值来解决这个问题,但我仍然遇到同样的错误。

错误截图:

环境变量太大错误

如果有人能帮助我解决这个问题,我将不胜感激。

预先感谢您的帮助

windows path environment-variables windows-10

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