我想尝试在Visual Studio中使用自定义工具时,可以更改一个文件的内容,触发另一个文件的自定义工具.
我的情况是这样的:
在Visual Studio C#项目中,我有一个"master.xsd"xml架构,其中包含其他几个其他xsd文件.我正在使用Xsd2Code Visual Studio自定义工具从架构生成.cs.当master.xsd本身发生变化时,这可以正常工作,但是当其他xsds之一发生变化时,我希望自定义工具在文件master.xsd上运行.
有没有办法让一个文件触发另一个自定义工具?
[编辑 - 有关我为什么要使用自定义工具的详细信息]
目前我们有一个GenerateFiles.bat文件,它从命令行调用Xsd2Code来生成模式中的代码(如下面的MattDavey所建议的).这个工作,太慢了.
问题在于,每次构建Xsd2Code都会运行,但是由于很多其他项目都依赖于这个带有模式的项目,所以即使可能没有任何改变,它们也会重新编译.实际结果是,即使对单元测试进行微小改动,也只有一半的项目重新编译.这就是为什么我们一直在寻找自定义工具方法,只有在架构发生变化时才生成代码文件.
我有一个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在经典模式下不允许访问,因此我无法进行屏障检查.
所有的想法都感激不尽.
我有一个与酒精有关的网站,需要在让他们进入网站之前验证年龄.我使用检查cookie的HttpModule执行此操作,如果未设置,则将其重定向到验证页面.我验证他们的年龄并存储一个包含布尔值的cookie,以确定它们是否已经过验证.
这怎么会符合cookie法,因为我找不到这样的例子?
我是否仍然需要同意存储cookie或这种东西是免除的吗?
我已经完成了搜索,我找不到任何可以解决这类问题的事情.
谢谢
IIS 7.5引入了自动启动提供程序的概念,允许您在应用程序池启动时让WAS自动加载应用程序或程序集.
IIS7可以实现类似的功能吗?
基本上,我们有一个在WAS下运行的应用程序,并且具有内存中的数据缓存.当发生应用程序池循环时,我的WAS部署应用程序实际上不会被激活,直到收到它的第一次命中.这意味着在收到第一个匹配时缓存是冷的.一旦应用程序池被回收,能够预先启动应用程序将是一件好事.
我们考虑的其他选择是:
将应用程序部署为Windows服务,因此它不会重新循环(这可行,但IIS/WAS的应用程序生命周期管理除此问题外是有用的)
编写一个单独的服务,其工作是ping我们的应用程序以加热它.
但是,最好的方法是让IIS7/WAS为我们这样做.
我希望将文件从目录结构复制到新文件夹.我不是要保留文件结构,只是获取文件.文件结构可以有嵌套文件夹,但是名为'old'的文件夹中的任何内容我都不想移动.
我做了几次尝试,但我的PowerShell知识非常有限.
示例是当前文件结构的存在位置:
Get-ChildItem -Path "C:\Example\*" -include "*.txt -Recurse |% {Copy-Item $_.fullname "C:\Destination\"}
Run Code Online (Sandbox Code Playgroud)
这给了我所有我想要的文件,包括我不想要的所有文件.我不想包含"旧"文件夹中的任何文件.要注意:有多个"旧"文件夹.我试过--exclude,但看起来它只与文件名有关,我不知道如何在路径名上排除 - 同时仍然复制文件.
有帮助吗?
我在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)
我看不出有什么方法可以做到这一点,但我想知道我是否错过了什么.
我需要更改文档的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) 我正在使用linq.我的所有查询都是这样的var query = dc.GetTable<myType>().
我希望我可以使用字符串参数选择"myType".我尝试使用反射创建一个Type对象,但编译器不会将Type对象识别为类定义.
有什么建议?谢谢
我在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) 简单的形式没有验证.如果用户多次按下提交按钮(即由于互联网滞后或其他原因),我不希望表单被提交多次.我对客户端解决方案感兴趣.jQuery或简单的JavaScript是可以接受的.
谢谢.
这是交易。我找到了一个源代码并对其进行了一些更改,以便我可以从 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# ×8
.net ×4
asp.net ×2
iis ×2
binary ×1
c#-3.0 ×1
c#-4.0 ×1
cookies ×1
customtool ×1
file-copying ×1
form-submit ×1
generics ×1
iis-7 ×1
javascript ×1
jquery ×1
linq ×1
powershell ×1
reflection ×1
string ×1
was ×1
xml ×1
xpath ×1
xsd2code ×1