问题列表 - 第2445页

如何从控制台应用程序运行winform?

如何在控制台应用程序中创建,执行和控制winform?

c# console-application winforms

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

避免在printf()中尾随零

我一直绊倒printf()函数系列的格式说明符.我想要的是能够在小数点后打印一个最大给定位数的double(或float).如果我使用:

printf("%1.3f", 359.01335);
printf("%1.3f", 359.00999);
Run Code Online (Sandbox Code Playgroud)

我明白了

359.013
359.010
Run Code Online (Sandbox Code Playgroud)

而不是期望的

359.013
359.01
Run Code Online (Sandbox Code Playgroud)

有谁能够帮我?

c printf

105
推荐指数
4
解决办法
11万
查看次数

如何正确打开FileStream以与XDocument一起使用

我想使用Linq2XML将一些节点附加到xml文档.有问题的文件正由其他进程使用,他们应该能够在我更新文件时读取该文件.所以我提出了这个解决方案,这显然不是正确的方法(方法doc.Save()失败并说另一个进程正在使用该文件):

using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.Read))
{
  doc = XDocument.Load(new StreamReader(fs));
  doc.Root.Add(entry);
  doc.Save(filename);
  fs.Close();
}
Run Code Online (Sandbox Code Playgroud)

任何帮助都非常有用.

.net c# access-control linq-to-xml filestream

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

在不使用COM的情况下从C++调用C#方法

有没有办法创建C#对象并从非托管C++调用方法,但没有使用COM Iterop?我正在寻找像JNI(但对于.Net)这样的东西,你可以手动创建VM,创建对象等.

.net c# c++ com interop

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

具有并发垃圾收集器的函数式语言?

Microsoft的新F#编程语言提供了功能编程(一流的词法闭包和尾调用)与高效的并发垃圾收集器的强大组合,可以轻松利用多核.

OCaml,Haskell,Erlang以及我所知道的所有免费的Lisp和Scheme实现没有并发GC.Scala和Clojure有一个并发GC但没有尾调用.

因此似乎没有结合这些功能的开源编程语言.那是对的吗?

concurrency garbage-collection tail-call

4
推荐指数
3
解决办法
1085
查看次数

在.NET中编译与版本无关的DLL

脚本

我有两个围绕Microsoft Office的包装器,一个用于2003,一个用于2007.由于有两个版本的Microsoft Office并行运行"不正式",也没有Microsoft推荐,我们有两个盒子,一个用Office 2003,另一个用Office 2003使用Office 2007.我们分别编译包装器.DLL包含在我们的解决方案中,每个框都有相同的结帐但Office 2003或2007"卸载",因此它不会尝试编译该特定的DLL.由于Office COM DLL不可用,如果不这样做将导致编译错误.

我们使用.NET 2.0和Visual Studio 2008.

事实

由于Microsoft在2007年神秘地改变了Office 2003 API,重命名和更改了一些方法(叹气)从而使它们不向后兼容,我们需要两个包装器.我们为每台构建机器提供了解决方案,并激活了一个Office DLL.例如:具有Office 2003的计算机已卸载"Office 2007"DLL,因此无法对其进行编译.另一个盒子是相同的想法,但反过来.这一切都是因为我们不能在同一个盒子中有2个不同的Office用于编程.(根据微软,你可以在技术上将两个Office放在一起),但不能用于编程,也不能没有一些问题.

问题

当我们改变了应用程序版本(从1.5.0.1至1.5.0.2为例),我们需要重新编译DLL相匹配的应用程序的新版本,这是自动完成的,因为Office包装包含在解决方案.由于包装器包含在解决方案中,因此它们继承了APP版本,但我们必须执行两次,然后将另一个DLL"复制"到创建安装程序的计算机上.(痛苦......)

是否可以编译一个可以与任何版本的应用程序一起使用的DLL ,尽管它"更老"?我已经阅读了一些关于清单的内容,但我从未与这些内容进行过互动.任何指针将不胜感激.

秘密原因是,我们没有在"时代"改变了我们的包装和也没有微软与他们的古老的API,但我们正在重新编译DLL以匹配应用程序版本,每一个我们做的释放.我想自动化这个过程,而不是依赖两台机器.

我无法从项目中删除DLL(它们都没有),因为存在依赖项.

我可以创建第三个"主包装器"但尚未考虑过它.

有任何想法吗?有其他要求相同的人吗?

UPDATE

澄清:

我有一个N项目的解决方案.

"应用程序"+ Office11Wrapper.dll + Office12Wrapper.dll.

两个"包装器"都使用应用程序的依赖关系+解决方案中的其他库(数据层,业务层,框架等)

每个包装器都有相应Office包的引用(2003和2007).

如果我编译并且没有安装office 12,我会从Office12Wrapper.dll中找不到Office 2007库的错误.所以我拥有两台构建机器,一台使用Office 2003,一台使用Office 2007.在每台机器上进行完整的SVN更新+编译之后,我们只需在"安装程序"中使用office12.dll就可以将编译器编译为"相同"代码,相同版本".

注意:Office 2007 Build Machine,Office 2003的Wrapper"已卸载",反之亦然.

提前致谢.

.net c# dll version visual-studio-2008

9
推荐指数
1
解决办法
8575
查看次数

从 ActionExecutingContext 获取原始端口?

是否可以从 ActionExecutingContext 对象获取原始端口?如果是这样,怎么办?

c# asp.net-mvc logging

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

需要以相同方式处理的多种方法

在我正在编写的一个C#中,我需要以相同的方式处理具有相同签名的多个方法.此外,将来可能会有更多这些方法.我没有反复重复同样的逻辑,而是想到了以下几点:

private delegate bool cleanStep(BuildData bd, out String strFailure);

List<cleanStep> steps = new List<cleanStep>();
steps.Add(WriteReadme);
steps.Add(DeleteFiles);
steps.Add(TFSHelper.DeleteLabel);
steps.Add(TFSHelper.DeleteBuild);

List<cleanStep>.Enumerator enumerator = steps.GetEnumerator();
bool result = true;
while (result && enumerator.MoveNext())
{
   result = enumerator.Current.Invoke(build, out strFailure);
   if (!result)
   {
      logger.Write(LogTypes.Error, strFailure);
   }
}
Run Code Online (Sandbox Code Playgroud)

我认为这有一些很好的功能,但它也有点过于引擎和混淆.

你能感谢一个更好的方法吗?

BTW:

  • 它不需要是交易的.
  • strFailure不会隐藏在必要时将其完全包装起来的异常

谢谢.

c# delegates

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

为什么,当我在WCF服务中模拟时,当我尝试运行LINQ to SQL查询时,我的服务是否可以加载System.Transactions?

我有一个WCF服务,托管在IIS 7.0中,需要运行数据库查询.为了获得正确的权限,我在服务中模仿如下:

[OperationBehavior(Impersonation = ImpersonationOption.Allowed)]
public void MyOperation(int arg)
Run Code Online (Sandbox Code Playgroud)

组态

<behavior name="ReceivingServiceBehavior">
    <!-- Other behaviors -->
    <serviceAuthorization impersonateCallerForAllOperations="true" />
</behavior>
Run Code Online (Sandbox Code Playgroud)

当我尝试连接并运行我的查询时,我得到以下内容:

Exception - System.IO.FileLoadException: Could not load file or
assembly 'System.Transactions, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089' or one of its dependencies. Either a
required impersonation level was not provided, or the provided
impersonation level is invalid. (Exception from HRESULT: 0x80070542)

File name: 'System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' ---> System.Runtime.InteropServices.COMException (0x80070542): Either a required impersonation level was not provided, or the provided impersonation …

.net sql-server security wcf transactions

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

.NET中的"HttpRequest.RequestType"和"WebRequest.Method"值的常量在哪里?

我需要检查RequestTypeHttpRequest在ASP.NET(或WebRequest.Method).我知道我可以使用字符串值" POST"或" GET"作为请求类型,但我可以发誓在.NET中包含值的某个类中有一个常量.

出于好奇,我想知道是否有人知道这些字符串常量是哪一个阶级GETPOST人.我已经试过在网上搜索,但我没有运气,所以我认为我会问这里.

.net c# asp.net

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