Tag: .net

是否可以使用WCF发现来公开使用命名管道的WCF端点?

我有一个使用发现的应用程序,可以在本地部署在同一台PC上或远离它所使用的服务。 有没有办法通过WCF发现公开命名管道绑定? 如果不是,我想我可以在发现服务后进行协商,以确定最合适的绑定。

自动.ToString()?

我有一个像这样的方法: void m1(string str)并有一个这样的类: public class MyClass { public bool b1 { set; get; } //and other properties } 现在为什么下面的代码不会导致编译错误? IClass2 _class2 = new Class2(); MyClass c1 = new MyClass(); _class2.m1(“abcdef” + c1); 当我调试它时,我意识到c1.ToString()已传递给m1 。 为什么会出现这种自动.ToString() ? 我唯一可以说的是m1已经在IClass2接口中定义并且已经由Class2实现。

在WPF中打印DataGrid中的所有数据

我正在研究WPF应用程序。 我在DataGrid中有数据,我必须打印其中的所有数据。 我试过这个…… publicMainWindow() { InitializeComponent(); DataTabledt = newDataTable(); dt.Columns.Add(“S.No”); dt.Columns.Add(“Name”); dt.Columns.Add(“Father’s Name”); dt.Columns.Add(“DOB”); dt.Columns.Add(“Qualification”); dt.Columns.Add(“Gender”); dt.Columns.Add(“SSC %”); dt.Columns.Add(“+2 %”); dt.Columns.Add(“Graduation %”); dt.Columns.Add(“Work Experience”); dt.Columns.Add(“Company”); object[] rowValues = {“01″,”Gopi”,”Ravi”,”31″,”Degree”,”M”, “88”,”85″, “80”,”2 Years”,”Blah Blah”}; dt.Rows.Add(rowValues); dt.AcceptChanges(); myGrid.DataContext = dt.DefaultView; } privatevoidPrint_Click(object sender, RoutedEventArgs e) { PrintDialogprintDlg = newPrintDialog(); if ((bool)printDlg.ShowDialog().GetValueOrDefault()) { Sizepagesize = newSize(printDlg.PrintableAreaWidth,printDlg.PrintableAreaHeight); myGrid.Measure(pagesize); myGrid.Arrange(newRect(5, […]

一个Stream中的多个文件,自定义流

根据这里的答案,我想将多个文件流写入一个流,如下所示: 为每个流的长度编号保留4个字节,每个流内容写入后,它的结束流的长度数(4个字节后)将是这样的 Stream = File1 len + File1 stream content + File2 len + File2 stream content + …. 示例代码: result = new ExportResult_C() { PackedStudy = packed.ToArray() , Stream = new MemoryStream() }; string[] zipFiles = Directory.GetFiles(zipRoot); foreach (string fileN in zipFiles) { MemoryStream outFile = new MemoryStream(File.ReadAllBytes(fileN)); MemoryStream len = new MemoryStream(4); //initiate […]

string.Empty和null需要多少空间?

空字符串和null占用多少内存? 我发现了这个问题 ,它讲述了String.Empty内存分配但不是null 。 如果我想在会话中存储一个空字符串或null ,哪个会占用更少的空间? class MyClass { public string One { get; set; } public string Two { get; set; } public MyClass(string one,string two) { One = one; Two = two; } } class Main { var emp = new MyClass(String.Empty, String.Empty); var nul = new MyClass(null,null); }

如何从字符串中获取数字

我想从字符串中获取数字,例如:My123number给出123同样varchar(32)给出32等 提前致谢。

为什么以下不编译? (涉及c#中的generics和inheritance)

这编译: class ReplicatedBaseType { } class NewType: ReplicatedBaseType { } class Document { ReplicatedBaseType BaseObject; Document() { BaseObject = new NewType(); } } 但这不是: class DalBase : where T: ReplicatedBaseType { } class DocumentTemplate { DalBase BaseCollection; DocumentTemplate () { BaseCollection= new DalBase(); // Error in this line. It seems this is not possible } […]

P /在Compact Framework中调用CreateToolhelp32Snapshot失败

嘿,我正在为我的智能手机做一个小应用程序,使用Windows Mobile 6.我正在尝试获取所有当前正在运行的进程,但方法CreateToolhelp32Snapshot总是返回-1。 所以现在我卡住了。 我试图通过调用GetLastError()方法获得错误,但该方法返回0值。 这是我的代码片段。 private const int TH32CS_SNAPPROCESS = 0x00000002; [DllImport(“toolhelp.dll”)] public static extern IntPtr CreateToolhelp32Snapshot(uint flags, uint processid); public static Process[] GetProcesses() { ArrayList procList = new ArrayList(); IntPtr handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if ((int)handle > 0) { try { PROCESSENTRY32 peCurr; PROCESSENTRY32 pe32 = new PROCESSENTRY32(); // get byte array to […]

正则表达式,用于validation具有一个空格和一个可选特殊字符的数字

有人可以告诉我如何用一个空格validation数字序列,最后会有一个可选的特殊字符说’#’,然后再跟着5个数字。 例: 12345 6587#2584 我试过了 (0(?:\d{0,11}|(?=\d* \d*$)[\d ]{0,12})) 但我不知道如何添加可选的’#’,最后是数字。

手动加载从属程序集

我有一个项目,使用Assembly.Load或Assembly.LoadFile加载同一程序集的多个版本。 然后,我使用Assembly.CreateInstance从该特定程序集创建一个类型。 这很有效,直到我创建的类型引用另一个依赖程序集。 我需要一种方法来拦截这个特定程序集的请求,以加载另一个程序集并为其提供正确的版本(或更好的探测路径)以查找其依赖项。 这是必需的,因为我使用Assembly.CreateInstance创建的程序集的v1和v2通常也需要不同版本的依赖程序集,但默认情况下,v1和v2都将探测相同的目录。 我已经看到了如何一般地为AppDomain做的示例 ,但是我需要以处理来自特定根程序集的所有分辨率的方式执行此操作。 假设我做了类似的事情: AppDomain.CurrentDomain.AssemblyResolve += delegate(object sender, ResolveEventArgs args) { //Use args.RequestingAssembly to determine if this is v1 or v2 based on path or whatever //Load correct dependent assembly for args.RequestinAssembly Console.WriteLine(args.Name); return null; }; 这可能适用于我的目标程序集立即引用的依赖项,但这些依赖项引用的程序集又如何呢? 如果v1引用了Depv1,它本身引用了DepDepv1,我需要能够知道这一点,所以我可以确保它可以正确地找到它们。 在那种情况下,我想我需要以某种方式跟踪这个。 也许通过添加自定义程序集证据 – 虽然我无法使其工作,并且似乎没有任何“程序集元数据”属性,我可以在运行时添加。 如果我可以简单地指示特定程序集从特定目录加载其所有依赖项,那将会容易得多。 更新 我设法使用AssemblyResolve事件根据RequestingAssembly的路径加载依赖程序集,但它似乎是一个有缺陷的方法。 似乎使用哪个依赖程序集版本完全取决于首先加载哪个版本。 例如: 加载v1 加载v2 参考v1导致Depv1的加载 参考v2导致Depv2的加载 […]