小编Nic*_*ick的帖子

使用DLL中的类创建VB6应用程序,然后在构建后换出该DLL?

所以我的问题相对简单,我可以创建引用dll中的类的VB6应用程序,然后在运行时将该dll替换为另一个吗?

现在我的初步猜测是......在VB6中没有机会.

所以我的想法转向VB.net互操作dll.我可以在这里做,然后从VB调用interop dll吗?

再一次,我的猜测是没有....但如果有人知道不同,我会很高兴.

我认为唯一可以实际工作的是DI in .Net,但是我只限于.net 2,或者是一个大推动的3.5,所以我不知道这是否可行.

所以对于背景....

我有一个特定网站使用的DLL,但我们不想将它发送给每个人.相反,我们想要构建一个只有接口设置的克隆dll,以便完成VB6构建.当它到达需要它的站点时,他们想要替换虚拟dll,而是放入他们的版本.

注意:我们确实在安装RegFreeCOM时使用它,因此我确实拥有可以根据需要使用的清单文件.

任何想法将不胜感激.

缺口

vb.net vb6 com-interop

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

将输入转换为大写的大写属性

我在MVC4工作,想要使用Uppercase属性定义模型.我们的想法是,大写属性的存在会导致模型值在到达服务器时转换为大写.

目前我在模型中有以下代码:

    [Required]
    [Display(Name="Account Code")]
    [StringValidation(RegExValidation.AccountCode, Uppercase=true)]
    public string Account
    {
        get { return _account; }
        set
        {
            if (value != null)
                _account = value.ToUpper();
        }
    }
Run Code Online (Sandbox Code Playgroud)

但我真正喜欢的是:

    [Required]
    [Display(Name="Account Code")]
    [StringValidation(RegExValidation.AccountCode)]
    [Uppercase]
    public string Account { get; set; }
Run Code Online (Sandbox Code Playgroud)

我认为我可能需要创建一个Uppercase属性,ValidationAttribute以确保在模型到达服务器时触发它.但这似乎有点不对,因为我并没有真正验证数据.有没有更好的办法?

另外,有没有办法确保属性的调用顺序?我真的想在自定义StringValidation属性触发之前将数据转换为大写,因为这会检查正则表达式模式中文本的大小写.

要为此添加一些背景知识,我希望减少添加代码以大写数据的需要.涅(nirvana)将是一个单一属性,它可以在模型绑定或验证阶段更新进入服务器的数据.然后可以在StringValidation属性中引用此属性以修改其检查中使用的RegEx值.然后我也可以在自定义TextBoxFor帮助器方法中查找此属性,这样我就可以添加text-transform: uppercase它,使其在客户端看起来正确.

有没有人有任何想法?

asp.net-mvc custom-attributes data-annotations

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

ODP.Net托管驱动程序-ORA-12704:生成的代码中的字符集不匹配

我当前使用Oracle托管驱动程序(v12.1.2400)作为我的Entity Framework驱动程序,并且当前ORA-12704: character set mismatch在执行过程中看到错误。

我正在使用的LINQ-> SQL代码如下:

from c in CUSTOMER.AsNoTracking()
where c.ACCOUNT.Contains("DE")
   && c.DELETED == "N"
orderby (c.FORENAME + c.SURNAME)
select new { c.ACCOUNT, c.FORENAME, c.SURNAME})
Run Code Online (Sandbox Code Playgroud)

这将创建以下SQL:

SELECT "Project1"."C2" AS "C1",
"Project1"."ACCOUNT" AS "ACCOUNT", 
"Project1"."FORENAME" AS "FORENAME",
"Project1"."SURNAME" AS "SURNAME"
FROM (
      SELECT(  (CASE WHEN ("Extent1"."FORENAME" IS NULL) THEN N''
                     ELSE "Extent1"."FORENAME" END)
             ||(CASE WHEN ("Extent1"."SURNAME" IS NULL) THEN N''
                     ELSE "Extent1"."SURNAME" END)) AS "C1", 
             "Extent1"."ACCOUNT" AS "ACCOUNT", 
             "Extent1"."FORENAME" AS "FORENAME",
             "Extent1"."SURNAME" AS "SURNAME",
             1 AS "C2" …
Run Code Online (Sandbox Code Playgroud)

c# odp.net entity-framework-6

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

在加载第一个EF实体之前,我可以在DBContext连接上执行SQL命令吗?

我对EF很新,并且在没有运气的情况下寻找答案.

本质上,当我在EF中获得与db的连接时,我需要执行一个存储过程来设置一些内部安全性,这将限制在EF交互中返回的数据.

搜索周围,我发现以下信息应该有效:

String currentUser = "Name";
_db = new DBContext();
if (_db.Database.Connection.State != ConnectionState.Open) {
    _db.Database.Connection.Open();
}

DbConnection conn = _db.Database.Connection;
DbCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "storedproc";

DbParameter user = cmd.CreateParameter();
user.DbType = DbType.String;
user.Direction = ParameterDirection.Input;
user.Value = currentUser.ToUpper();
cmd.Parameters.Add(user);
cmd.ExecuteNonQuery();

var customer = (from c in _db.Customer where c.ACCOUNT == inputAccount select c);           
response = customer.First<Customer>();
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试这个时,我得到"EntityConnection只能用一个封闭的DBConnection构建".当我点击LINQ查询.

有谁知道这是否可能?

我正在使用EF4.1和Oracle ODP.NET Beta进行数据库访问,它连接到10.2.0.3.0服务器.

在此先感谢您的帮助!

[编辑]

我设法通过Craig提到的方法解决这个问题,并通过以下方式完成:

  • 提供与DbContext的连接
  • 在我做任何工作之前打开连接

这允许我执行我的安全存储过程,并强制EF保持连接打开,所以我的安全设置仍然有效.

代码如下:

OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings["DBConnect"].ConnectionString); …
Run Code Online (Sandbox Code Playgroud)

.net entity-framework

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

Lookup在运行时在类中构成

它是理论上可以在查找constsclass运行时?

我有一个充满类似于此的consts的静态类:

public static class Constants {
    public const string Yes = "Yes";
    public const string No = "No";
}
Run Code Online (Sandbox Code Playgroud)

我想知道我是否可以创建一个可以接受Constants类的UnitTest,并从中读取所有的consts.我的想法是,我可以编写一个单元测试,然后针对所有的const字符串运行.因此,如果我在类中添加更多字符串,则单元测试不必更改.

我相信这里的答案是否定的......但我认为值得一提以防万一!

c# unit-testing

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