问题列表 - 第26791页

使用c#解压缩文件

哪一个更好的是使用窗口shell在C#中解压缩文件或使用像DotNetZip这样的第三方软件在c#中解压缩?

c# asp.net

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

动态覆盖c#中的抽象方法

我有以下抽象类,不能更改.

public abstract class AbstractThing {
   public String GetDescription() {
      return "This is " + GetName();
   }
   public abstract String GetName();
}
Run Code Online (Sandbox Code Playgroud)

现在我想从中实现一些新的动态类型.

AssemblyName assemblyName = new AssemblyName();
assemblyName.Name = "My.TempAssembly";
AssemblyBuilder assemblyBuilder = Thread.GetDomain().DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run);
ModuleBuilder moduleBuilder =  assemblyBuilder.DefineDynamicModule("DynamicThings");
TypeBuilder typeBuilder = moduleBuilder.DefineType(someName + "_Thing", 
                TypeAttributes.Public | 
                TypeAttributes.Class, 
                 typeof(AbstractThing));
MethodBuilder methodBuilder = typeBuilder.DefineMethod("GetName",    
                MethodAttributes.Public | 
                MethodAttributes.ReuseSlot |
                MethodAttributes.Virtual | 
                MethodAttributes.HideBySig,
                null,
                Type.EmptyTypes);

ILGenerator msil = methodBuilder.GetILGenerator();

msil.EmitWriteLine(selectionList);
msil.Emit(OpCodes.Ret);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试实例化via时

typeBuilder.CreateType();
Run Code Online (Sandbox Code Playgroud)

我得到一个例外,说GetName没有实现.我在这里做错了吗?我看不出问题.

另外,通过名称实例化这样一个类的限制是什么?例如,如果我尝试通过"My.TempAssembly.x_Thing"实例化它是否可用于实例化而不生成Type?

c#

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

如何从rails中的视图和控制器调用辅助方法?

我为一些简单的计算创建了一个辅助方法.这个辅助方法只返回一个整数.我需要控制器和视图中的帮助器.

不幸的是,它在视图中运行良好,但在控制器中运行良 我收到了undefined local variable or method错误.我该如何解决?

谢谢大家

model-view-controller ruby-on-rails helper

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

使用XmlNode(c#)进行相对XPath选择

假设我有以下xml文件:

<a>
  <b>
    <c></c>
  </b>
  <b>
    <c></c>
  </b>
</a>

var nodes = doc.SelectNodes("/a/b");
Run Code Online (Sandbox Code Playgroud)

将选择两个b节点.

然后我循环这两个节点,例如:

 foreach (XmlNode node in nodes) { }
Run Code Online (Sandbox Code Playgroud)

但是,当我调用node.SelectNodes("/a/b/c");它仍然返回两个值而不仅仅是后代.是否可以选择仅从当前下降的节点node

c# xpath

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

mysql phpmyadmin接受4个字符,但其实际长度为int 2

我有员工表,其empid长度为INT 3,

但它接受超过3个字符....

怎么可能

(这是在PHPMYADMIN中测试的)

mysql

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

转换MS词"卷曲"引号和撇号

如何在Java中将MS Word引号和撇号转换为常规引号和撇号字符?这些角色的unicode号是多少?

"你好吗?"

'你好'

由于Stack Overflow自动修复它们,因此它们在编辑器中的显示方式

卷曲行情

"你好吗?"

'你好'

quotes ms-word

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

将flex/php连接到Active Directory

有没有办法将我的Flex Web应用程序连接到Active Directory,并获取登录的用户名?

现在我们有一个PHP脚本连接到flex应用程序,它从用户获取用户/传递输入并检查AD中是否有这样的用户,并且密码是正确的.
我不想要求用户/通行证,而是让应用程序获得与其连接的域用户名,因此我可以使用它(检查用户是否可以访问我的应用程序等).

有办法吗?

php apache-flex active-directory

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

RegGetValue与RegQueryValueEx

我有一个由其他人编码的程序.它有一个函数RegGetValue用作:

 uFuncReturnValue = RegOpenKeyExA(  HKEY_LOCAL_MACHINE, 
                                acSubKey, 
                                NULL, 
                                KEY_READ | KEY_WRITE,
                                    &hRegistry
                                    ); 

  //Store signature of the disk in the first 32 bytes of structVal
 if( uFuncReturnValue != ERROR_SUCCESS )
            {
            printf("Unable to open registry with error %u\n", uFuncReturnValue);
            exit(EXIT_FAILURE);;
            }

uFuncReturnValue = RegGetValueA( hRegistry, 
                        NULL, 
                        "\\DosDevices\\C:",  
                        RRF_RT_REG_BINARY, 
                        NULL, 
                        (LPVOID)&structVal, 
                        &dwSize
                        );
Run Code Online (Sandbox Code Playgroud)

此代码块在Windows 7上完美运行,但在Windows XP(32位)上运行时返回错误.因为32位xp没有RegGetValue函数所以我试图使用RegQueryValueEX但是我在向这个函数传递参数时遇到了问题.我认为它应该用于某些事情:

uFuncReturnValue = RegQueryValueExA ( hRegistry, 
                                  "\\DosDevices\\J:",
                                  NULL,
                                  NULL,
                                  (LPBYTE) &structVal,
                                  &dwSize
                                  );
Run Code Online (Sandbox Code Playgroud)

但是这里有些错误,因为代码编译成功,但是当我执行它时,我收到一条消息:

程序'(128)myProgram.exe:Native'已退出代码1(0x1).

有人可以帮我吗?

windows registry

7
推荐指数
0
解决办法
6759
查看次数

System.TraceListener如何使用进程名称添加消息?

我一直在使用System.Diagnostics.Trace进行日志记录是一个非常基本的应用程序.一般来说,我只需要做它.缺点是,如果我打电话

Trace.TraceInformation("Some info");
Run Code Online (Sandbox Code Playgroud)

输出是"SomeApp.Exe Information:0:Some info".最初,这让我很开心,但不再这样.我想将"Some info"输出到控制台.所以我认为编写一个cusom TraceListener,而不是使用内置的ConsoleTraceListener,可以解决问题.我可以看到一个特定的格式,我想要在第二个冒号之后的所有文本.这是我试图看看这是否有效.

class LogTraceListener : TraceListener
{
    public override void Write(string message)
    {
        int firstColon = message.IndexOf(":");
        int secondColon = message.IndexOf(":", firstColon + 1);

        Console.Write(message);
    }

    public override void WriteLine(string message)
    {
        int firstColon = message.IndexOf(":");
        int secondColon = message.IndexOf(":", firstColon + 1);

        Console.WriteLine(message);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我输出firstColon的值,它总是-1.如果我提出一个断点,那么消息总是只是"一些信息".所有其他信息来自哪里?

所以我在调用Console.WriteLine之前看了一下调用堆栈.调用我的WriteLine方法的方法是:System.dll!System.Diagnostics.TraceListener.TraceEvent(System.Diagnostics.TraceEventCache eventCache,string source,System.Diagnostics.TraceEventType eventType,int id,string message)+ 0x33 bytes

当我使用Reflector查看此消息时,这一切看起来都非常简单.在将其发送到Console.WriteLine后,我看不到任何更改字符串值的代码.唯一可以更改底层字符串值的方法是调用UnsafeNativeMethods.EventWriteString,它有一个参数,指向消息的指针.

有谁知道这里发生了什么,我是否可以改变输出只是我的消息没有额外的绒毛.我可以将一些字符串"Some info"传递给Console.WriteLine(或任何其他方法)以及输出的字符串不同,这似乎是邪恶的魔法.

编辑:我找到了魔法.显然这不是魔术.在调用WriteLine之前,Write方法从对WriteHeader的调用中调用,这是我认为魔法正在发生的地方.

.net c# tracelistener

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

需要代码在java中创建连接池

需要代码在java中创建连接池吗?我们如何确保连接池不返回已在使用的同一对象?如果客户端从连接池中取出连接后关闭连接会怎么样?

更新1:

我想用简单的Java术语创建它,并希望看到它在多线程环境中如何工作.我的意思是哪些方法将同步,哪些方法不同步.这门课还会成为公共课吗?如果是,则任何人都可以访问此类并重新初始化连接池?

更新2:

我有一些代码如下.但我不知道如何"关闭来自池的连接将其返回到池中,它不会在物理上关闭连接." 此外,我没有理解这一点"因为如果连接已从池中借用而尚未返回,则它不是"可用"且无法重新分配给池中的另一个客户端.

import java.util.*;
import java.sql.*;

class ConnectionPoolManager
{

 String databaseUrl = "jdbc:mysql://localhost:3306/myDatabase";
 String userName = "userName";
 String password = "userPass";

 Vector connectionPool = new Vector();

 public ConnectionPoolManager()
 {
  initialize();
 }

 public ConnectionPoolManager(
  //String databaseName,
  String databaseUrl,
  String userName,
  String password
  )
 {
  this.databaseUrl = databaseUrl;
  this.userName = userName;
  this.password = password;
  initialize();
 }

 private void initialize()
 {
  //Here we can initialize all the information that we need
  initializeConnectionPool();
 }

 private void initializeConnectionPool()
 {
  while(!checkIfConnectionPoolIsFull())
  { …
Run Code Online (Sandbox Code Playgroud)

java connection connection-pooling

31
推荐指数
5
解决办法
9万
查看次数