我正在编写一个代码生成工具,它将接收从Visual Studio的数据集生成器生成的XSD文件,并为每个表中的每个列创建一个自定义类.我已经了解如何实现IVsSingleFileGenerator代码生成以及如何将单个文件生成器转换为多文件生成器.然而,似乎我最麻烦的一步是应该是最简单的一步.我以前从未真正使用过XML或XML-Schema,我也不知道迭代XSD文件并读出列名和类型的正确方法是什么,因此我可以构建我的代码.
有关如何读取XSD文件的教程的任何建议?如何拉也分别任何建议xs:element表示列出来,并阅读其msprop:Generator_UserColumnName,type以及msprop:Generator_ColumnPropNameInTable从每一个元素属性.
以下两个语句是否完全相同,包括后期绑定等副作用?
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)
编辑:如果我使用第一种语法或第二种语法,类似的语句将是相同的
我正在尝试更新游标内的一行.我要做的是用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) 以下是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) 我试图找到最近的value每id比年长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) 我正在使用自定义类,并有一个事件处理程序来监视属性,只在特定情况下作出反应.
这是基类的片段:
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) 我Users从域中删除用户后,我试图删除文件夹中的用户配置文件文件夹.问题是有时系统可能正在使用该文件夹.
问题是使用MOVEFILE_DELAY_UNTIL_REBOOT具有MoveFileEx将只能删除空文件夹.
如果dwFlags指定MOVEFILE_DELAY_UNTIL_REBOOT且lpNewFileName为NULL,则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) 假设您有一些定义为
[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) 我目前正在开发一个 Windows 窗体应用程序,我想要一个显示当前时间和日期的运行时钟。我现在拥有的代码确实显示了时间和日期,但它不会自行更新。有没有办法自行更新时间和日期?
这是我目前拥有的:
lblTime.Text = DateTime.Now.ToString("hh:mm:ss tt");
lblDate.Text = DateTime.Now.ToShortDateString();
Run Code Online (Sandbox Code Playgroud)