小编Rob*_*ine的帖子

在Visual Studio中,我可以创建一个文件来运行另一个自定义工具吗?(在这种情况下使用Xsd2Code)

我想尝试在Visual Studio中使用自定义工具时,可以更改一个文件的内容,触发另一个文件的自定义工具.

我的情况是这样的:

在Visual Studio C#项目中,我有一个"master.xsd"xml架构,其中包含其他几个其他xsd文件.我正在使用Xsd2Code Visual Studio自定义工具从架构生成.cs.当master.xsd本身发生变化时,这可以正常工作,但是当其他xsds之一发生变化时,我希望自定义工具在文件master.xsd上运行.

有没有办法让一个文件触发另一个自定义工具?

[编辑 - 有关我为什么要使用自定义工具的详细信息]

目前我们有一个GenerateFiles.bat文件,它从命令行调用Xsd2Code来生成模式中的代码(如下面的MattDavey所建议的).这个工作,太慢了.

问题在于,每次构建Xsd2Code都会运行,但是由于很多其他项目都依赖于这个带有模式的项目,所以即使可能没有任何改变,它们也会重新编译.实际结果是,即使对单元测试进行微小改动,也只有一半的项目重新编译.这就是为什么我们一直在寻找自定义工具方法,只有在架构发生变化时才生成代码文件.

c# visual-studio-2010 customtool xsd2code

7
推荐指数
1
解决办法
1250
查看次数

我可以检测我的HttpModule中是否已压缩内容吗?

我有一个HttpModule,用于动态压缩ASP.NET(MVC3)Web应用程序中的内容.该方法非常类似于在CompressionModule 本文(其中,模块应用一个gzip滤波器到的HttpResponse并设定正确的内容编码头).

出于某种原因,这需要在经典模式下运行,而不是集成管道模式.

我遇到的问题是,在某些启用了IIS压缩的服务器上,IIS会压缩内容,然后我的模块会压缩它.

结果是我通过编码将内容压缩两次:

Content-encoding: gzip,gzip
Run Code Online (Sandbox Code Playgroud)

一个来自IIS,一个来自我的代码中的这一行:

 httpResponse.AppendHeader("Content-encoding", "gzip");
Run Code Online (Sandbox Code Playgroud)

在经典模式下,有没有人知道我可以检查内容是否已经压缩,或者是否在服务器上启用压缩,以绕过我自己的压缩?

在管道模式下,此检查非常简单

if (httpResponse.Headers["Content-encoding"]!= null)
{
   return;
}
Run Code Online (Sandbox Code Playgroud)

即检查是否已经设置了内容编码,如果已经设置了内容编码,则不执行任何操作.

但是,我被困在经典模式中.不幸的是,HttpResponse.Headers在经典模式下不允许访问,因此我无法进行屏障检查.

所有的想法都感激不尽.

c# asp.net iis

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

关于年龄验证的Cookie法

我有一个与酒精有关的网站,需要在让他们进入网站之前验证年龄.我使用检查cookie的HttpModule执行此操作,如果未设置,则将其重定向到验证页面.我验证他们的年龄并存储一个包含布尔值的cookie,以确定它们是否已经过验证.

这怎么会符合cookie法,因为我找不到这样的例子?

我是否仍然需要同意存储cookie或这种东西是免除的吗?

我已经完成了搜索,我找不到任何可以解决这类问题的事情.

谢谢

asp.net cookies session-cookies

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

您可以将IIS7配置为在应用程序池启动/回收时自动启动Windows进程激活服务(WAS)应用程序吗?

IIS 7.5引入了自动启动提供程序的概念,允许您在应用程序池启动时让WAS自动加载应用程序或程序集.

IIS7可以实现类似的功能吗?

基本上,我们有一个在WAS下运行的应用程序,并且具有内存中的数据缓存.当发生应用程序池循环时,我的WAS部署应用程序实际上不会被激活,直到收到它的第一次命中.这意味着在收到第一个匹配时缓存是冷的.一旦应用程序池被回收,能够预先启动应用程序将是一件好事.

我们考虑的其他选择是:

  • 将应用程序部署为Windows服务,因此它不会重新循环(这可行,但IIS/WAS的应用程序生命周期管理除此问题外是有用的)

  • 编写一个单独的服务,其工作是ping我们的应用程序以加热它.

但是,最好的方法是让IIS7/WAS为我们这样做.

.net c# iis iis-7 was

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

从目录结构复制文件但排除指定的文件夹

我希望将文件从目录结构复制到新文件夹.我不是要保留文件结构,只是获取文件.文件结构可以有嵌套文件夹,但是名为'old'的文件夹中的任何内容我都不想移动.

我做了几次尝试,但我的PowerShell知识非常有限.

示例是当前文件结构的存在位置:

Get-ChildItem -Path "C:\Example\*" -include "*.txt -Recurse |% {Copy-Item $_.fullname "C:\Destination\"}
Run Code Online (Sandbox Code Playgroud)

这给了我所有我想要的文件,包括我不想要的所有文件.我不想包含"旧"文件夹中的任何文件.要注意:有多个"旧"文件夹.我试过--exclude,但看起来它只与文件名有关,我不知道如何在路径名上排除 - 同时仍然复制文件.

有帮助吗?

powershell file-copying

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

在Unity中,是否可以从其类型别名中解析类型?

我在Unity中注册了几种类型,并给出了类型别名,如下所示:

<typeAliases>
   <typeAlias alias="MyType" type="foo.bar.MyType, foo.bar" />
</typeAliases>
Run Code Online (Sandbox Code Playgroud)

是否可以使用别名(而不是类型)从容器中解析这些类型,顺序如下:

var myType = container.ResolveByTypeAlias("MyType")
Run Code Online (Sandbox Code Playgroud)

我看不出有什么方法可以做到这一点,但我想知道我是否错过了什么.

.net c# unity-container

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

更改Xml声明,或选择不带声明的xml部分

我需要更改文档的xml声明部分,或者只选择数据减去声明.哪个更容易?

这是我的xml看起来像的一个例子:

<?xml version="1.0" encoding="utf-16"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:layout-master-set>
        <fo:simple-page-master page-height="11in" page-width="8.5in" margin-top="0.50in" margin-left="0.8in" margin-right="0.8in" margin-bottom="0.25in" master-name="PageMaster">
            <fo:region-body border-style="none" border-width="thin" margin-top="0in" margin-left="0in" margin-right="0in" margin-bottom="0.25in"/>
            <fo:region-after border-style="none" border-width="thin" extent="0.25in"/>
        </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="PageMaster"/>
</fo:root>
Run Code Online (Sandbox Code Playgroud)

我正在尝试将xml声明更改为:

<?xml version="1.0" encoding="iso-8859-1"?>
Run Code Online (Sandbox Code Playgroud)

.net c# xml xpath

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

C#泛型与反思

我正在使用linq.我的所有查询都是这样的var query = dc.GetTable<myType>().

我希望我可以使用字符串参数选择"myType".我尝试使用反射创建一个Type对象,但编译器不会将Type对象识别为类定义.

有什么建议?谢谢

c# linq generics reflection

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

使用字符串生成器,我已经读取了一个文件..如何找到文件中是否存在给定的字符串?

我在StringBuilder中读了一个文件.当我给一个字符串作为输入时,如果文件中存在该单词,则输出应为true ..如果它不存在,则应该为false ..我该怎么做?有人可以帮我代码吗?我已经把程序写到了这里..我怎么走得更远?非常感谢.. :)

class Program
{
    static void Main(string[] args)
    {
        using (StreamReader Reader = new StreamReader("C://myfile2.txt"))
        {
            StringBuilder Sb = new StringBuilder();
            Sb.Append(Reader.ReadToEnd());
            {
                Console.WriteLine("The File is read");   
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# c#-3.0 c#-4.0

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

JS:如何防止多次提交表单?

简单的形式没有验证.如果用户多次按下提交按钮(即由于互联网滞后或其他原因),我不希望表单被提交多次.我对客户端解决方案感兴趣.jQuery或简单的JavaScript是可以接受的.

谢谢.

javascript jquery form-submit

0
推荐指数
1
解决办法
251
查看次数

C#二进制数据转字符串

这是交易。我找到了一个源代码并对其进行了一些更改,以便我可以从 com6 上的接收器检索数据。我收到的数据是二进制的。我想要的是将其转换为字符串,以便我可以剪切字符串的一部分并单独解码它们。我怎样才能做到这一点?源代码在下面。

using System;
using System.IO.Ports;
using System.Threading;

public class PortChat
{
    static bool _continue;
    static SerialPort _serialPort;

    public static void Main()
    {
        string name;
        string message;
        StringComparer stringComparer = StringComparer.OrdinalIgnoreCase;
        Thread readThread = new Thread(Read);

        // Create a new SerialPort object with default settings.
        _serialPort = new SerialPort();

        // Allow the user to set the appropriate properties.
        _serialPort.PortName = SetPortName(_serialPort.PortName);
        _serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate);
        _serialPort.Parity = SetPortParity(_serialPort.Parity);
        _serialPort.DataBits = SetPortDataBits(_serialPort.DataBits);
        _serialPort.StopBits = SetPortStopBits(_serialPort.StopBits);
        _serialPort.Handshake = SetPortHandshake(_serialPort.Handshake);

        // Set the …
Run Code Online (Sandbox Code Playgroud)

c# string binary

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