我Assembly.GetEntryAssembly().GetName()
用来获取应用程序/程序集名称及其版本,但我没有看到公司名称和版权的任何变量.我怎么做到的?
代码:
string sURL = "http://subdomain.website.com/index.htm";
MessageBox.Show(new System.Uri(sURL).Host);
Run Code Online (Sandbox Code Playgroud)
给了我"subdomain.website.com"
但我需要主域名"website.com"用于任何网址或网站链接.
我怎么做?
有没有办法在firefox或chrome中一次单击"全部折叠"所有节点,然后能够搜索节点的名称,然后快速查看其父节点的路径/树?首先崩溃不只是顶级节点,而是所有子节点,当我搜索节点时,它只打开那个节点树.我想要这个,因为我在一个大的xml文件中搜索一个节点.该节点在父节点的不同路径下多次出现,我需要查看节点出现的路径.现在我必须手动遍历整个文件并多次折叠以查找在文件中多次出现的该节点的所有路径.这样做的快捷方式?
xml firefox-addon google-chrome-extension xml-parsing xml-visualizer
我运行一个进程,在命令行中使用参数执行exe,并且需要一些时间才能完成.在此期间,我将表单显示为带有进度条和取消按钮的对话框.按下取消按钮时,该过程应该中止/停止.我有两种方法可以做到:
A.在主窗体中声明Process类的公共静态对象,并在单击取消按钮时从进度窗体中止它:
public partial class frmMain : Form
{
public static Process Process = new Process();
public static bool ExecuteCommand(string sCommandLineFile, string sArguments)
{
Process.StartInfo.FileName = sCommandLineFile;
Process.StartInfo.Arguments = sArguments;
Process.StartInfo.CreateNoWindow = true;
Process.StartInfo.UseShellExecute = false;
Process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
Process.Start();
Process.WaitForExit();
}
}
Run Code Online (Sandbox Code Playgroud)
从Progress窗口表单中关闭/中止进程:
public partial class frmProgress : Form
{
private void btnCancel_Click(object sender, EventArgs e)
{
frmMain.Process.Close();
frmMain.Process.Dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
B.或者不要调用Process.WaitForExit(); 而是使用Process.HasExited来检查进程是否正在运行,如果单击取消按钮则取消它:
public static bool IsCancelled = false;
Process.StartInfo.FileName = sCommandLineFile;
Process.StartInfo.Arguments = sArguments;
Process.StartInfo.CreateNoWindow = true;
Process.StartInfo.UseShellExecute …
Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码:
PdfReader PDFReader = new PdfReader("C:\\file.pdf");
FileStream Stream = new FileStream("C:\\new.pdf", FileMode.Create, FileAccess.Write);
PdfStamper PDFStamper = new PdfStamper(PDFReader, Stream);
for (int iCount = 0; iCount < PDFStamper.Reader.NumberOfPages; iCount++)
{
PdfContentByte PDFData = PDFStamper.GetOverContent(iCount + 1);
BaseFont baseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED);
PDFData.BeginText();
PDFData.SetColorFill(CMYKColor.LIGHT_GRAY);
PDFData.SetFontAndSize(baseFont, 80);
PDFData.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "SAMPLE DOCUMENT", 300, 400, 45);
PDFData.EndText();
}
Stream.Close();
PDFReader.Close();
PDFStamper.Close();
Run Code Online (Sandbox Code Playgroud)
但PDFStamper.Close();
抛出错误。另外,我不确定是PDFReader.Close();
在之前还是之后打电话PDFStamper.Close();
并且PDF文件中不添加水印。
我需要在C#中使用一个正常的Regex代码来检测字符串中的纯文本URL(http/https/ftp/ftps),并通过在其周围放置一个带有相同url的锚标记来使它们可单击.我已经制作了一个Regex模式,代码附在下面.
但是,如果输入字符串中已存在任何可点击的URL,则上面的代码会在其上添加另一个锚标记.例如,下面代码中的现有子字符串:string sContent:"ftp://www.abc.com'> ftp://www.abc.com "在运行下面的代码时,它上面有另一个锚标记.有没有办法解决它?
string sContent = "ttt <a href='ftp://www.abc.com'>ftp://www.abc.com</a> abc ftp://www.abc.com abbbbb http://www.abc2.com";
Regex regx = new Regex("(http|https|ftp|ftps)://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?", RegexOptions.IgnoreCase);
MatchCollection mactches = regx.Matches(sContent);
foreach (Match match in mactches)
{
sContent = sContent.Replace(match.Value, "<a href='" + match.Value + "'>" + match.Value + "</a>");
}
Run Code Online (Sandbox Code Playgroud)
此外,我想要一个正则表达式代码,使用"mailto"标签可以点击电子邮件.我可以自己做,但上面提到的双锚标签问题也会出现在其中.
我通过从代码中复制代码并将其添加到监视窗口,在运行时从代码中添加代码片段以观察窗口.如果代码包含.NET的默认命名空间(如System.IO,System.Xml等)的Convert.ToString(),XMLDocument.Load(),File.Write()等方法,则会出现错误: "转换"这个名称在当前上下文中不存在"但是当我在监视窗口中为添加的代码片段添加完整的命名空间时,它不会出错,例如:System.Convert.ToString(123)给出正确的值.我的程序代码在调用任何.NET框架方法之前没有完整的命名空间,因为如果我在任何方法调用之前添加命名空间,那么使用"using"关键字在每个文件的顶部添加命名空间的用途是什么.如果我在文件中的代码上方添加命名空间,那么在方法调用之前,我不必在该文件的代码中添加整个命名空间.除了每次将代码复制到监视列表时在监视窗口中添加完整命名空间,我还能做些什么,以便监视不会出错.请看下面的截图:
更新:我在监视列表中添加方法以在执行之前检查方法的结果.它确保方法执行不会在执行时产生任何错误或异常,并且我可以编辑代码,因为该方法实际上并未在程序的代码执行中执行.我在该方法的调用代码上设置了一个断点,并首先在监视窗口中添加该代码以检查是否有任何错误,因为如果我不这样做,那么我必须重新运行整个程序以更正下一个值时间.
c# debugging visual-studio visual-studio-debugging visual-studio-2012
我正在使用代码:
Uri.TryCreate(sURL, UriKind.Absolute, out URI)
Run Code Online (Sandbox Code Playgroud)
效果很好。
我需要打电话Uri.IsWellFormedUriString(sURL, UriKind.Absolute)
吗?我的意思是我想知道Uri.IsWellFormedUriString
when Uri.TryCreate
完美的用途是什么?
我有一个类"Class1",在.NET 2.0中有一个字符串变量"sText".我创建了该类"lstClass1"的对象列表.它在设置字符串变量后存储该类的许多对象.
完整的代码是:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (!lstClass1.Contains(new Class1("text1")))
lstClass1.Add(new Class1("text1"));
}
public List<Class1> lstClass1 = new List<Class1>();
}
public class Class1
{
public Class1(string sText)
{
this.sText = sText;
}
public string sText = "";
}
Run Code Online (Sandbox Code Playgroud)
现在,问题是我只想添加具有唯一文本值的字符串的类对象.例如,如果lstClass1已经有一个字符串变量值为"text1"的对象,那么它不应该允许添加一个也具有"text1"的对象.所以,我写了代码:
if (!lstClass1.Contains(new Class1("text1")))
lstClass1.Add(new Class1("text1"));
Run Code Online (Sandbox Code Playgroud)
但它总是允许添加文本"text1",即使列表中已存在带有"text1"字符串的对象.我的假设是,在第一个按钮单击事件"button1_Click"时,将添加该对象,因为列表为空但在下一个按钮上单击List.Contains函数将检查列表中是否已存在字符串变量"text1"并且如果找到则不会添加.但它总是允许添加带有文本"text1"的对象,即使它已经存在于列表中.
请注意:我没有采用简单的字符串列表或字符串,因为我想以简单的方式解释列表,类和对象的大问题.
请帮忙.
我想system32
在32位Windows和SysWOW64
64位Windows 上获取路径路径.无论Environment.GetFolderPath(Environment.SpecialFolder.System)
和Environment.SystemDirectory
做工精细.我应该选择和使用哪一个?我使用的是.NET 2.0