小编Sco*_*ain的帖子

如何解析XSD文件

我正在编写一个代码生成工具,它将接收从Visual Studio的数据集生成器生成的XSD文件,并为每个表中的每个列创建一个自定义类.我已经了解如何实现IVsSingleFileGenerator代码生成以及如何将单个文件生成器转换为多文件生成器.然而,似乎我最麻烦的一步是应该是最简单的一步.我以前从未真正使用过XML或XML-Schema,我也不知道迭代XSD文件并读出列名和类型的正确方法是什么,因此我可以构建我的代码.

有关如何读取XSD文件的教程的任何建议?如何拉也分别任何建议xs:element表示列出来,并阅读其msprop:Generator_UserColumnName,type以及msprop:Generator_ColumnPropNameInTable从每一个元素属性.

c# parsing xsd

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

这两个陈述是否意味着相同的事情?

以下两个语句是否完全相同,包括后期绑定等副作用?

Ilist<SomeClass> sessions = SomeFunction()
var tmp = from session in sessions
          select new ConnectedUsers()
              {
                  ID = session.SessionId,
                  Username = session.UserName,
                  HostName = session.ClientName,
                  IpAddress = session.ClientIPAddress.ToString()
              };
var tmp2 = sessions.Select((session) => new ConnectedUsers() 
        { 
            ID = session.SessionId, 
            Username = session.UserName, 
            HostName = session.ClientName, 
            IpAddress = session.ClientIPAddress.ToString() 
        });
Run Code Online (Sandbox Code Playgroud)

编辑:如果我使用第一种语法或第二种语法,类似的语句将是相同的

.net c# linq

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

尽管我宣称它为"更新",Cursor仍然只读它

我正在尝试更新游标内的一行.我要做的是用OLD_QTY和NEW_QTY更新记录链.但是,当我尝试进行更新时,The cursor is READ ONLY即使我包含for update of OLD_QTY, NEW_QTY在我的declration中,也会出现错误.如果我在select语句中包含OLD_QTY和没有区别NEW_QTY.

declare @current_inv_guid uniqueidentifier
declare @last_inv_guid uniqueidentifier
declare @current_vid int
declare @last_vid int
--declare @current_new_qty money
declare @last_new_qty money
--declare @current_old_qty money

declare iaCursor cursor 
      for select INV_GUID, old_VID
          --, OLD_QTY, NEW_QTY  
          from #IA 
          order by INV_GUID, old_vid, ENTRY_NUM 
      for update --of OLD_QTY, NEW_QTY
open iaCursor
Fetch next from iaCursor into @current_inv_guid, @current_vid --, @current_old_qty, @current_new_qty

while @@fetch_status = 0
begin
    --test to see …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

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

如何在一个WCF请求中发送多个返回值?

以下是WCF服务我希望同时从用户那里获得5个值,并向他们发送添加前两个值的响应作为AddedResult,添加结果的减法和第三个值作为SubtractedResult,SubtractedResult和第四个值的乘法作为MultipliedResult和multipliedResult和第5个值的分割为DividedResult.

我知道这看起来没有意义,但我正在尝试用这些进行一些预先测试,但我是WCF的新手,任何可以提供帮助的人都会非常感激.

public interface IService1
{

    [OperationContract]
    string GetValuesForCalculation(int value1, int value2, int value3, int value4, int value5);


    // TODO: Add your service operations here
}


public class Service1 : IService1
{

    public int GetValuesForCalculation(int value1, int value2, int value3, int value4, int value5)
    {
        int AddedResult;
        int SubtractedResult;
        int MultipliedResult;
        int DividedResult;

        AddedResult = (value1 + value2);
        SubtractedResult = (AddedResult - value3);
        MultipliedResult = (SubtractedResult - value4);
        DividedResult =(MultipliedResult/value5);

        return AddedResult;
        return SubtractedResult;
        return MultipliedResult;
        return DividedResult;
    }


} …
Run Code Online (Sandbox Code Playgroud)

.net c# wcf response request

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

如何以编程方式告诉XP 64位和Server 2003 64位之间的区别

我有一个程序,我需要根据用户运行的Windows版本显示不同的下载链接.

使用此答案,我能够检测操作系统的版本.同样使用这个答案,我可以检测到我是在32位还是64位版本的OS上运行.

这完全符合我的需要,但是我遇到了这个页面,它说明了两者Windows XP 64-Bit EditionWindows Server 2003使用了版本号5.2.

如何检测这两个操作系统之间的差异?


作为旁注,我确实需要将它们发送到不同的位置,如果它们是2003 64位或XP 64位,这里是我需要发送给人们的链接:

.net c# windows .net-2.0

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

找到一个更好的方法来做每组前1名

我试图找到最近的valueid比年长1/1/2013

create table #foo
(
    id int,
    value money,
    entry_date datetime
)

insert into #foo values (1, 1.00, '1/1/2012')
insert into #foo values (1, 2.00, '2/1/2012')
insert into #foo values (1, 7.00, '1/1/2013')
insert into #foo values (2, 1.00, '1/1/2013')
insert into #foo values (2, 1.00, '2/1/2013')
insert into #foo values (3, 5.00, '3/1/2012')
Run Code Online (Sandbox Code Playgroud)

以下给出了解决方案,但我知道我这样做是错误的.

select id, value
from
(
    select id, value, row_number() over (partition by id order by entry_date desc) as ind
    from …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005

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

我如何更改事件处理程序在继承类中的工作方式?

我正在使用自定义类,并有一个事件处理程序来监视属性,只在特定情况下作出反应.

这是基类的片段:

public class PageView
{
    private UIView activePage;
    public List<UIView> Pages { get; set; }
    public delegate void PageChangedEventHandler(object sender, PageChangedEventArgs e);
    public event PageChangedEventHandler PageChanged;

    public UIView ActivePage
    {
        get { return activePage; }
        set
        {
            if (!activePage.Equals(value))
            {
                activePage = value;
                OnPageChanged();
            }
        }
    }

    protected virtual void OnPageChanged()
    {
        if (PageChanged != null) 
           PageChanged(this, new PageChangedEventArgs(Pages.IndexOf(activePage)));
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我在子类中尝试做的事情:

public class LoopingPageView : PageView
{
    protected override void OnPageChanged()
    {
        if (PageChanged != null && 
            Pages.IndexOf(ActivePage) …
Run Code Online (Sandbox Code Playgroud)

c# .net-4.0

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

重启时删除非空文件夹

Users从域中删除用户后,我试图删除文件夹中的用户配置文件文件夹.问题是有时系统可能正在使用该文件夹.

问题是使用MOVEFILE_DELAY_UNTIL_REBOOT具有MoveFileEx将只能删除空文件夹.

来自MSDN:

如果dwFlags指定MOVEFILE_DELAY_UNTIL_REBOOTlpNewFileNameNULL,则MoveFileEx 会在系统重新启动时注册要删除的lpExistingFileName文件.如果lpExistingFileName引用目录,则仅当目录为空时,系统才会在重新启动时删除目录.

删除包含正在使用的文件的非空文件夹的正确方法是什么?


这是一个基于Michel答案的简单测试程序,它按预期工作.

internal static class Program
{
    private static void Main(string[] args)
    {
        foreach (var file in Directory.EnumerateFiles(args[0], "*", SearchOption.AllDirectories))
        {
            Console.WriteLine(file);
        }

        foreach (var directory in Directory.EnumerateDirectories(args[0], "*", SearchOption.AllDirectories))
        {
            Console.WriteLine(directory);
            DeleteFileOnReboot(directory);
        }

        DeleteFileOnReboot(args[0]);
    }

    private static void DeleteFileOnReboot(string file)
    {
        bool result = MoveFileEx(file, null, MoveFileFlags.MOVEFILE_DELAY_UNTIL_REBOOT);
        try
        {
            if (!result)
                throw new Win32Exception();
        } …
Run Code Online (Sandbox Code Playgroud)

c# winapi movefileex

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

WCF可以在导线上保持引用相等吗?

假设您有一些定义为

[DataContract]
public class Foo
{
    [DataMember]
    public List<Bar> Bars {get; set;}
}

[DataContract]
public class Bar
{
    [DataMember]
    public string Baz { get; set; }
}

public class Service1 : IService1
{
    public bool Send(Foo foo)
    {
        var bars = foo.Bars;

        bars[0].Baz = "test2";
        return bars[0].Baz == bars[1].Baz;
    }
}

[ServiceContract]
public interface IService1
{
    [OperationContract]
    bool Send(Foo composite);
}
Run Code Online (Sandbox Code Playgroud)

假设我正在使用WCF到WCF,并且在客户端和服务器之间使用共享数据协定DLL,如果执行以下操作

static void Main(string[] args)
{
    using (var client = new ServiceReference.Service1Client())
    {
        var bar = new Bar();
        bar.Baz …
Run Code Online (Sandbox Code Playgroud)

c# wcf reference

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

在我的程序 C# 中集成一个运行时钟

我目前正在开发一个 Windows 窗体应用程序,我想要一个显示当前时间和日期的运行时钟。我现在拥有的代码确实显示了时间和日期,但它不会自行更新。有没有办法自行更新时间和日期?

这是我目前拥有的:

    lblTime.Text = DateTime.Now.ToString("hh:mm:ss tt"); 
    lblDate.Text = DateTime.Now.ToShortDateString();
Run Code Online (Sandbox Code Playgroud)

c# datetime winforms

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