小编joh*_*ose的帖子

Array.Clear实际上做了什么?

我正在寻找答案,该Array.Clear(...)方法在C#的封面下做了什么.

我已经查看了IL,但这并没有真正产生任何线索,因为它只是调用System.Array::Clear(...)mscorlib中的方法,然后调用CLR的一个我无法观察到的非托管部分.

我问这个的原因是,我偶尔会因为调用Array.Clear而引发SEHException,而我似乎无法弄清楚它为什么会发生.

不幸的是,微软似乎对抛出异常时可能意味着什么有点守口如瓶......

来自:http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.sehexception(v=VS.100).aspx

默认情况下,任何未自动映射到特定异常的SEH异常都会映射到SEHException类.有关更多信息,请在MSDN Library中搜索"非托管异常"和"结构化异常处理".

.net c# clr cil exception

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

使用ctags生成调用层次结构图

是否有人知道如何使用ctagscscope生成调用层次结构图?我需要在终端中运行命令并将输出重定向到文件,而不是在vim中执行.

ctags cscope call-graph

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

使用Reflection更改属性时引发事件

我在C#工作,我有一个我只能使用的对象Reflection(出于某些个人原因).所以,当我需要为其中一个属性设置一些值时,我会按如下方式执行:

System.Reflection.PropertyInfo property = this.Parent.GetType().GetProperty("SomeProperty");
object someValue = new object(); // Just for example
property.SetValue(this.Parent, someValue, null);
Run Code Online (Sandbox Code Playgroud)

并且,为了获得它的价值,我使用了这个方法GetValue.

我的问题是:当使用Reflection更改属性时,是否有办法触发事件?

c# reflection propertychanged

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

如何从java代码调用外部dll函数

我需要从Java代码调用外部DLL库函数.我使用Netbeans 7.2.我的dll的功能是:

Boolean  isValid(string  word)
List<String> getWords(String  word)
Run Code Online (Sandbox Code Playgroud)

我正在关注这个例子.但我不知道如何声明我的dll功能.我发现了另一个链接.但它对我不起作用.

java dll call jna

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

无法从程序集'mscorlib,版本= 4.0.0.0加载类型'System.Runtime.CompilerServices.ExtensionAttribute'错误

我的.NET站点在Localhost上工作正常.但是,在我的服务器上.我收到这个错误.

"无法从程序集'mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'加载类型'System.Runtime.CompilerServices.ExtensionAttribute'."

(由于Stack Overflow策略,无法发布截图)

这与asp:ScriptManager有关.我之前在同一台服务器上使用过它,但现在,它显示错误.

PS:当我删除Scriptmanager时,代码运行正常.

版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.272

.net c# asp.net

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

如何使用SQL组筛选具有最大日期值的行

我有下表

CREATE TABLE Test
    (`Id` int, `value` varchar(20), `adate` varchar(20))
;

INSERT INTO Test
    (`Id`, `value`, `adate`)
VALUES
    (1, 100, '2014-01-01'),
    (1, 200, '2014-01-02'),
    (1, 300, '2014-01-03'),
    (2, 200, '2014-01-01'),
    (2, 400, '2014-01-02'),
    (2, 30 , '2014-01-04'),
    (3, 800, '2014-01-01'),
    (3, 300, '2014-01-02'),
    (3, 60 , '2014-01-04')
;
Run Code Online (Sandbox Code Playgroud)

我想实现只选择具有最大日期值的Id的结果.即

Id,价值,adate

 1, 300,'2014-01-03'     
 2, 30 ,'2014-01-04'     
 3, 60 ,'2014-01-04'
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现这个目的group by?我做了如下但不起作用.

Select Id,value,adate
from Test
group by Id,value,adate
having adate = MAX(adate)
Run Code Online (Sandbox Code Playgroud)

有人可以帮助查询吗?

sql group-by having-clause

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

使用C#接口扩展现有应用程序

我即将开始重新开发我的ASP.NET C#MVC商业项目,该项目负责提名澳大利亚的马事件.

我想将它扩展到其他类型的活动,例如赛车,足球,任何东西.目前,它对这项运动非常具体

我一直在研究接口和其他OOP方法,但将它应用到现实世界有点令人生畏.

这是我的基本计划:

public interface INomination
{
    public void AddNomination(); 
    public void UpdateNomination();
    public void DeleteNomination();
}

public BaseNomination
{
    // Define properties
}

public HorseNomination : BaseNomination, INomination
{
    // Horse nomination specific stuff, like specifying the horse
    public bigint HorseID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后,在NominationService中,我可以调用它

public void HandleNomination(INomination nomination)
{
    nomination.Add();
}
Run Code Online (Sandbox Code Playgroud)

我的头开始受伤的地方是如何区分要求用户为HorseNomination指定马匹的提名,如CarNomination?

我需要IHorseNomination,ICarNomination吗?如果是这样,我如何处理它以呈现用户输入的View类型?

c# asp.net oop

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

Pug模板 - 如何将下拉列表中的选项标记为已选中

我有一个Pug模板,它使用Bootstrap 4作为'布局'并从Express/Mongoose服务器接收数据.

我正在填充MongoDB中的表单,以便可以编辑内容.我一直在寻找方法根据mongoDB文档中的值使下拉列表"选择"一个选项.

我已经看到了从头开始构建下拉列表并将选项设置为"已选择"的方法,但是表单已经生成并且已经有一个下拉列表.我只需要将选项与mongoDB文档中的值匹配,并将选项设置为在列表中显示.

Pug模板如下:

.row
  .col-sm-6
    .form-group
      label.control-label.requiredField(for='propertyType')
        | Property Type
        span.asteriskField *
      .col-xs-12
        select#propertyType.select.form-control.input-lg(form='addProperty', name='propertyType')
          option(value='0') -- Select --
          option(value='6') Home
          option(value='7') Condo
          option(value='10') Single Family Home
          option(value='11') Town House
          option(value='12') City Apartment
          option(value='13') Villa


script.
  var propertyType = document.getElementById('propertyType');

  for (var i = 0; i < propertyType.options.length; i++) {

    if (propertyType.options[i].value = #{property.typeId}) {
        propertyType.options[i].selected = 'selected';
        propertyType.selectedIndex = i;
        break;
    }

  }
Run Code Online (Sandbox Code Playgroud)

如果我保持列出的代码,那么获取新值的实际选项是第一个' - 选择 - ',它的值从'0'变为'6',这是MongoDB文档中的值.

如果我更改javascript以将值#{property.TypeId}传递给'selectedIndex',如下所示:

propertyType.selectedIndex = #{property.typeId};
Run Code Online (Sandbox Code Playgroud)

然后索引的值发生变化,'selected'选项改变 - '6',但这会选择选项的第6个选项,而不选择值为'6'的选项.

下拉是唯一我无法填充的东西,所以任何帮助都将非常感激.

pug

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

Git push --all vs --mirror

git push --all和之间有什么区别git push --mirror

我只知道这个:

  • 使用已删除的本地分支,--all不会推送它--mirror.

这是对的?

还有其他差异吗?

git push github

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

AppDomain.Unload不会释放我用Reflection加载的程序集

可能重复:
如何在AppDomain.Unload(域)后删除pluginassembly

在临时AppDomain中加载程序集以读取其GetUsedReferences属性时,我正在努力解决问题.一旦我这样做,我调用AppDomain.Unload(tempDomain)然后我尝试通过删除文件来清理我的混乱.因为文件被锁定而失败.我虽然卸载了临时域名!任何想法或建议都会受到高度赞赏.这是我的一些代码:

//I already have btyes for the .dll and the .pdb from the actual files
AppDomainSetup domainSetup = new AppDomainSetup();
domainSetup.ApplicationBase = Environment.CurrentDirectory;
domainSetup.ShadowCopyFiles = "true";
domainSetup.CachePath = Environment.CurrentDirectory;
AppDomain tempAppDomain = AppDomain.CreateDomain("TempAppDomain", AppDomain.CurrentDomain.Evidence, domainSetup);

//Load up the temp assembly and do stuff
Assembly projectAssembly = tempAppDomain.Load(assemblyFileBuffer, symbolsFileBuffer);

//Then I'm trying to clean up
AppDomain.Unload(tempAppDomain);
tempAppDomain = null;
File.Delete(tempAssemblyFile); //I even try to force GC
File.Delete(tempSymbolsFile);
Run Code Online (Sandbox Code Playgroud)

无论如何,删除失败,因为文件仍然被锁定.它们不应该被释放因为我卸载了临时AppDomain吗?

.net assemblies

6
推荐指数
3
解决办法
9152
查看次数

标签 统计

c# ×4

.net ×3

asp.net ×2

assemblies ×1

call ×1

call-graph ×1

cil ×1

clr ×1

cscope ×1

ctags ×1

dll ×1

exception ×1

git ×1

github ×1

group-by ×1

having-clause ×1

java ×1

jna ×1

oop ×1

propertychanged ×1

pug ×1

push ×1

reflection ×1

sql ×1