小编Eri*_*tas的帖子

将项目更新为修订版本并恢复为修订版本

我已经开始使用Subversion与TortoiseSVN.如果我打开日志并右键单击旧版本,我会看到两个选项听起来像是回滚到旧版本:"将项目更新为版本"和"还原到此版本".

我知道当您只想回顾旧版本而不是真正更改存储库时,会使用更新到旧版本.Revert是你真正搞砸了,并希望存储库中的最新版本与旧版本相同.

所以说HEAD修订版是100并且我恢复到95.它会将我的工作副本反向合并回95.然后我可以将更改提交到存储库,这将创建修订版101正确吗?如果我更新回到95版,那会有什么不同?它是否仍然只是扭转了上次修订的变化?在将恢复或更新到旧版本之后,我对工作副本的状态有何不同感到困惑.

svn tortoisesvn

161
推荐指数
4
解决办法
10万
查看次数

XSLT可以插入当前日期吗?

我们在办公室中使用的程序通过将使用XSLT文件导出的XML文件转换为XHTML来导出报告.我正在重写XSLT以更改格式并从源XML文件中添加更多信息.

我想在最终报告中包含文件的创建日期.但是当前日期/时间不包含在原始XML文件中,也无法控制XML文件的创建方式.似乎没有任何构建到XSLT中的日期函数将返回当前日期.

有没有人知道我在XSLT转换过程中如何能够包含当前日期?

xslt xhtml

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

如何在调试时查看DataTable

我刚刚开始使用ADO.NET和DataSet和DataTables.我遇到的一个问题是,在尝试调试时,似乎很难分辨数据表中的值.

有哪些最简单的方法可以快速查看DataTable中保存的值?有没有在调试时看到Visual Studio中的内容,或者是将数据写入文件的唯一选项?

我创建了一个小实用程序函数,它将DataTable写入CSV文件.然而,生成的CSV文件被切断了.应该是写出System.Guid中间最后一行的大约3行,文件就停止了.我无法判断这是我的CSV转换方法或DataTable的原始填充的问题.

更新

忘掉最后一部分,我忘了冲洗我的流作家.

csv debugging datatable ado.net dataset

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

找不到System.Windows.Media namepspace?

我正在使用第三方API中具有类型属性的对象System.Windows.Media.ImageSource,但我似乎无法在任何地方找到System.Windows.Media命名空间.如果我尝试添加对项目的引用,我System.Windows.Media在选项列表中看不到.我的项目也针对.Net 3.5.

为了能够访问此命名空间,我还需要做些什么吗?

.net c# namespaces

77
推荐指数
5
解决办法
9万
查看次数

我如何运行XSLT文件?

好吧,这似乎是一个愚蠢的问题,但我无法弄清楚.我正在编写一个XSLT文件来将XML文档转换为XHTML文档.我已经使用Visual Studio和XML Notepad 2007来预览我的XSLT文件的结果,但现在我想实际写出一个真正的XHTML文件,这样我就可以看到它在其他浏览器中的外观.

Visual Studio或XML NotePad都没有明显的方法来保存预览.我错过了什么.显然,文件正在被创建,因为正在预览某些内容,但我需要知道该文件的创建位置或更好地选择其位置.

xml xslt

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

格式化DataContractSerializer创建的XML

有没有一种简单的方法可以让DataContractSerializer吐出格式化的XML而不是一个长字符串?我不想以任何方式更改标签或内容,只是让它添加换行符和缩进以使XML更具可读性?

<tagA>
   <tagB>This is</tagB>   
   <tagC>Much</tagC>
   <tagD>
      <tagE>easier to read</tagE>
   </tagD>
</tagA>


<tagA><tagB>This is</tagB><tagC>Much</tagC><tagD><tagE>harder to read</tagE></tagD></tagA>
Run Code Online (Sandbox Code Playgroud)

c# xml formatting datacontractserializer

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

System.BadImageFormatException尝试加载格式不正确的程序

我正在为另一个基于公共.NET API的程序编写插件.通常,这些插件是通过创建引用API程序集的类库DLL来创建的.然后,通过继承API程序集中的基本命令类来创建命令类.然后将应用程序设置为引用插件DLL文件,然后还负责在用户请求时实际启动自定义命令类.

但是,现在我正在尝试通过自动化代码生成System.CodeDOM,并且想要创建一个简单的控制台应用程序,该应用程序根据API程序集中的类型自动生成新的类类型.

然而,当我尝试运行我的应用程序时,我得到以下异常.

System.BadImageFormatException未处理消息:无法加载文件或程序集"RevitAPI,Version = 2011.0.0.0,Culture = neutral,PublicKeyToken = null"或其依赖项之一.尝试加载格式不正确的程序.

通常我需要将插件程序集的目标框架设置为3.5.但是现在我发现如果我将控制台应用程序的目标框架设置为2.0,上面的错误就会消失.但是,我的控制台应用程序已经引用了我的目标框架设置为3.5的其他类库.而且我真的不想围绕2.0框架重写它们.

.net revit badimageformatexception revit-api target-framework

42
推荐指数
4
解决办法
9万
查看次数

如何在我的DDD模型中将"用户"与认证用户集成?

我正在创建我的第一个ASP.NET MVC站点,并一直在尝试遵循域驱动的开发.我的站点是一个项目协作站点,可以将用户分配到站点上的一个或多个项目.然后将任务添加到项目中,并将项目中的用户分配给任务.所以"用户"是我的域模型的基本概念.

我的计划是拥有一个"用户"模型对象,其中包含有关用户的所有信息,可以通过IUserRepository访问.UserId可以识别每个用户.虽然我现在还不确定我是否希望UserId是一个字符串或整数.

我的域对象User和IUserRepository应该如何与我的网站的更多管理功能相关,例如授权用户并允许他们登录?如何将我的域模型与ASP.NET的其他方面集成,例如HttpContext.User,HttpContext.Profile,自定义MemberShipProvider,自定义ProfileProvider或自定义AuthorizeAttribute?

我应该创建一个自定义MembershipProvider和/或包含我的IUserRepository的ProfileProvider吗?虽然,我也可以预见为什么我可能想要将我的域模型中的用户信息与我站点上的用户授权分开.例如,将来我可能希望从表单身份验证切换到Windows身份验证.

不尝试重新发明轮子并坚持使用ASP.NET内置的标准SqlMembershipProvider会更好吗?每个用户的个人资料信息都将存储在域模型(User/IUserRepository)中,但这不包括他们的密码.然后我会使用标准的ASP.NET成员资格来处理创建和授权用户?因此,在创建帐户或第一次登录时,需要在某个地方创建一些代码,以便为IUserRepository中的新用户创建配置文件.

asp.net authentication asp.net-mvc domain-driven-design

39
推荐指数
1
解决办法
6363
查看次数

ICustomTypeDescriptor,TypeDescriptionProvider,TypeConverter和UITypeEditor

我试图全面了解如何使用ICustomTypeDescriptor,TypeDescriptionProvider,TypeConverter和UITypeEditor来更改PropertyGrid显示和与对象接口的方式.

有人可以告诉我这是对的,还是我错过了任何重大概念或要点?我真的只是想了解为什么以及何时使用每个班级.

ICustomTypeDescriptor

  • 在类中实现此接口会完全覆盖类的本机属性,并将其替换为ICustomTypeDescriptor.GetProperties()返回的PropertyDescriptors.

TypeDescriptionProvider

  • 用于扩展类的现有属性
  • TypeDescriptionProvider通过TypeDescriptionProvider属性附加到类
  • TypeDescriptionProvider的GetTypeDescriptor()方法返回要附加到该类型的现有属性的ICustomTypeDescriptor .
  • PropertyGrid将显示通过Reflection找到的类的属性,以及通过TypeDescriptionProvider添加到类的属性

类型转换器

  • 在类型之间转换
  • 在使用PropetyGrid方面,用于在可以在属性网格中显示/编辑的复杂类型和基元类型之间进行转换.
  • TypeConverter的GetStandard值方法还可用于显示propertygrid中可能值的列表

UITypeEditor的

  • 定义用于操作复杂类型属性的自定义编辑器.
  • 通过属性与属性相关联.

因此,ICustomTypeDescriptor和TypeDescription提供程序用于添加/更改/替换对象的整个属性.TypeConverter和UITypeEditor应用于各个属性,并控制这些特定属性的接口方式.

c# propertygrid uitypeeditor typeconverter customtypedescriptor

38
推荐指数
1
解决办法
9468
查看次数

有没有比这更快的方法来查找目录和所有子目录中的所有文件?

我正在编写一个程序,需要在目录及其所有子目录中搜索具有特定扩展名的文件.这将在本地和网络驱动器上使用,因此性能有点问题.

这是我现在使用的递归方法:

private void GetFileList(string fileSearchPattern, string rootFolderPath, List<FileInfo> files)
{
    DirectoryInfo di = new DirectoryInfo(rootFolderPath);

    FileInfo[] fiArr = di.GetFiles(fileSearchPattern, SearchOption.TopDirectoryOnly);
    files.AddRange(fiArr);

    DirectoryInfo[] diArr = di.GetDirectories();

    foreach (DirectoryInfo info in diArr)
    {
        GetFileList(fileSearchPattern, info.FullName, files);
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以将SearchOption设置为AllDirectories而不使用递归方法,但将来我会插入一些代码来通知用户当前正在扫描的文件夹.

现在我正在创建一个FileInfo对象列表,我真正关心的是文件的路径.我将有一个现有的文件列表,我想将其与新的文件列表进行比较,以查看添加或删除了哪些文件.有没有更快的方法来生成这个文件路径列表?有什么办法可以优化这个文件搜索来查询共享网络驱动器上的文件吗?


更新1

我尝试创建一个非递归方法,通过首先查找所有子目录,然后迭代扫描每个目录中的文件来执行相同的操作.这是方法:

public static List<FileInfo> GetFileList(string fileSearchPattern, string rootFolderPath)
{
    DirectoryInfo rootDir = new DirectoryInfo(rootFolderPath);

    List<DirectoryInfo> dirList = new List<DirectoryInfo>(rootDir.GetDirectories("*", SearchOption.AllDirectories));
    dirList.Add(rootDir);

    List<FileInfo> fileList = new List<FileInfo>();

    foreach (DirectoryInfo dir in dirList)
    {
        fileList.AddRange(dir.GetFiles(fileSearchPattern, SearchOption.TopDirectoryOnly));
    }

    return fileList;
}
Run Code Online (Sandbox Code Playgroud)

更新2

好吧,所以我在本地和远程文件夹上运行了一些测试,这两个文件夹都有很多文件(~1200).以下是我运行测试的方法.结果如下. …

.net c# directory file-io

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