问题列表 - 第28718页

具有泛型类声明的命名空间约束

我想知道是否(如果是这样的话)可以将命名空间定义为泛型类声明中的约束参数.

我有的是这个:

namespace MyProject.Models.Entities < - 包含要在db中保留的类

namespace MyProject.Tests.BaseTest < - 我觉得很明显

现在我的'BaseTest'类的变化看起来像这样;

public class BaseTest<T>
Run Code Online (Sandbox Code Playgroud)

BaseTest比在测试期间删除所有添加到数据库的实体更多(在编写本文时).所以通常我会将测试类声明为:

public class MyEntityRepositoryTest : BaseTest<MyEntity>
Run Code Online (Sandbox Code Playgroud)

我想要做的是类似于以下内容:

public class BaseTest<T> where T : <is of the MyProject.Models.Entities namespace>
Run Code Online (Sandbox Code Playgroud)

现在我知道完全可以简单地声明一个'BaseEntity'类,在该类中,在MyProject.Models.Entities命名空间中创建的所有实体都将从该类继承;

public class BaseTest<T> where T : MyBaseEntity
Run Code Online (Sandbox Code Playgroud)

但是......我实际上并不需要或想要.另外,我使用ORM和带有继承的映射实体,虽然可能,但增加了一层不需要的复杂性.

那么,是否可以将泛型类参数约束到命名空间而不是特定类型?

c# generics parameters constraints

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

Flurry没有从我的iPhone应用程序收集任何数据

我想使用Flurry来收集一些统计信息,所以我在Flurry中注册并创建了一个应用程序.然后,我将以下代码放在appDidFinishLaunching中:

[FlurryAPI startSession:@"code here"];
Run Code Online (Sandbox Code Playgroud)

之后,我在我的iPhone上安装了应用程序并运行它 - 但我没有看到任何在线数据.我错过了什么吗?

是否也从模拟器收集数据?

非常感谢,

斯特凡

iphone flurry

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

在xpath中为什么我可以使用大于符号>但不小于<

使用c#3编译变换以下似乎工作得很好......

<xsl:choose>
    <xsl:when test="$valA > $valB">
        <xsl:value-of select="$maxUnder" />
    </xsl:when>
    <xsl:when test="$valA &lt; $valC">
        <xsl:value-of select="$maxOver" />
    </xsl:when>
</xsl:choose>
Run Code Online (Sandbox Code Playgroud)

但是,如果我敢用它<代替&lt;它会给出错误......

<xsl:choose>
    <xsl:when test="$valA > $valB">
        <xsl:value-of select="$maxUnder" />
    </xsl:when>
    <xsl:when test="$valA < $valC">
        <xsl:value-of select="$maxOver" />
    </xsl:when>
</xsl:choose>
Run Code Online (Sandbox Code Playgroud)

System.Xml.XmlException:'<',十六进制值0x3C,是无效的属性字符.

那么为什么>没有<呢?

xml xslt syntax xpath

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

标记代码的属性

在c#中有一些属性,如[废弃],它们会创建将在visual studio中显示的编译器警告.

是否有一个属性可用于标记方法或带有注释的类,当我编译时,应该在visual studio中显示为警告?

就像是:

[TBD(Msg="Please change me after 2010 07 20")]
public void Foo(){
}
Run Code Online (Sandbox Code Playgroud)

或者是否有可能从System.Attribute派生并创建自己的属性,配置visual studio以使其行为与我所描述的一样.

UPDATE

感谢大家的回答,我接受了Robaticus的答案,因为他向我展示了我真正需要的解决方案:

#warning Message
Run Code Online (Sandbox Code Playgroud)

显示我想要的所需消息,它没有任何开销.谢谢!

但是我搜索的方向错误,因此提出了错误的问题.对于那些正在阅读这篇文章并且对初始问题的答案感兴趣的人,我发现Mark Rushakoff 发布的链接 非常有趣.在这篇文章中,Pablo Fernandez展示了一种使用属性属性来完成我所要求的聪明方法.

.net c#

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

是否附加到Windows/NTFS的原子文件?

如果我从多个进程编写一个简单的文本日志文件,它们是否会覆盖/破坏彼此的条目?

(基本上,这个问题是文件在UNIX中附加原子?但对于Windows/NTFS.)

windows file-io ntfs

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

在.NET Winforms应用程序中保存设置

可能重复:
存储.NET应用程序的用户设置的最佳方法是什么?

我已经找到了很多关于如何从Winforms应用程序保存应用程序设置(每个用户)的非常不同的示例.

我想在c#中执行此操作的正确方法非常简单,我希望有人可以启发我吗?

c# settings winforms

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

Android"试图使用回收的位图"错误?

我正在处理我正在处理的Android应用程序上的位图问题.假设发生的是应用程序从网站下载图像,将它们保存到设备,将它们作为位图加载到内存中,并将其显示给用户.首次启动应用程序时,这一切都正常.但是,我为删除了图像的用户添加了刷新选项,并且上面概述的过程从头开始.

我的问题:通过使用刷新选项,旧图像仍然在内存中,我很快就会得到OutOfMemoryErrors.因此,如果图像正在刷新,我让它通过arraylist并回收旧图像.但是,当应用程序将新图像加载到arraylist中时,它会因"尝试使用回收的位图"错误而崩溃.

据我了解,回收位图会破坏位图并为其他对象释放内存.如果我想再次使用位图,则必须重新初始化.我相信当新文件加载到arraylist时我正在这样做,但是仍然有问题.非常感谢任何帮助,因为这非常令人沮丧.问题代码如下.谢谢!

public void fillUI(final int refresh) { 
// Recycle the images to avoid memory leaks
if(refresh==1) {
    for(int x=0; x<images.size(); x++)
        images.get(x).recycle();
    images.clear();
    selImage=-1; // Reset the selected image variable
}
final ProgressDialog progressDialog = ProgressDialog.show(this, null, this.getString(R.string.loadingImages));
// Create the array with the image bitmaps in it
new Thread(new Runnable() {
    public void run() {
        Looper.prepare();
        File[] fileList = new File("/data/data/[package name]/files/").listFiles();
        if(fileList!=null) {
            for(int x=0; x<fileList.length; x++) {
                try {
                    images.add(BitmapFactory.decodeFile("/data/data/[package name]/files/" + fileList[x].getName()));
                } catch …
Run Code Online (Sandbox Code Playgroud)

android bitmap

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

表示数据库中复杂的计划重复

我试图在数据库中表示复杂的计划数据时遇到了一个有趣的问题.作为指导,我需要能够代表iCalendar - ics- 格式可以表示的全部内容,但是在数据库中.我实际上并没有实现任何与之相关的内容ics,但它提供了我需要能够为我的特定项目建模的规则类型的良好范围.

我需要允许基于每天多次,一周中的几天,一个月的一周,一个月,一年或这些的某种组合来允许表示单个事件或重复事件.例如,每年11月的第三个星期四,或每年的12月25日,或从11月2日开始的每两周一直持续到次年的9月8日.

我不关心插入效率,但查询效率至关重要.我最常做的操作是提供单个日期/时间或日期/时间范围,并尝试确定定义的时间表是否与日期/时间范围的任何部分相匹配.其他操作可能会更慢.例如,在2010年1月15日上午10:00到2010年1月15日上午11:00,查找至少部分时间匹配的所有计划.(即10:30 - 11:00的时间表仍然匹配.)

有什么建议?我看一下如何在RDBMS中表示预定事件?但它不包括我想建模的重复规则类型的范围.

database icalendar modeling calendar schedule

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

如何在超链接Regex中包含连字符?

我试图在用户输入的文本中找到链接并自动将它们转换为链接.

我正在使用当前的正则表达式,这很好找到文本的超链接.

Regex regexResolveUrl = new Regex("((http://|www\\.)([A-Z0-9.-:]{1,})\\.[0-9A-Z?;~&#=\\-_\\./]{2,})", RegexOptions.Compiled | RegexOptions.IgnoreCase);
Run Code Online (Sandbox Code Playgroud)

到目前为止,我遇到的几乎所有链接都有效,但是当我想要检测到有关的链接时它会给出问题.

即www.abc-xyz.com不起作用,上面的正则表达式,任何人都可以帮我这个吗?

c# regex asp.net

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

C#; 在转换为来自另一个程序集的SAME类时

为了完全分离/解耦,我在一个装配中实现了一个DAL,它只是通过post-build事件复制到网站BIN文件夹.然后,应用程序开始的网站加载该程序集System.Reflection.Assembly.LoadFile.再次,使用反射,我从该程序集中的类构造了几个实例.然后我在会话中存储对这些实例的引用(HttpContext.Current.Items)

后来,当我尝试将对象存储在会话中时,我无法将它们转换为自己的类型(最初尝试接口,但是为了调试尝试转换为他们自己的类型),得到此错误:

 [A]DAL_QSYSCamper.NHibernateSessionBuilder cannot be cast to [B]
DAL_QSYSCamper.NHibernateSessionBuilder. Type A originates from 'DAL_QSYSCamper, 
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' in the context 'Default' at 
location 'C:\Users\myusername\AppData\Local\Temp\Temporary ASP.NET 
Files\root\ad6e8bff\70fa2384\assembly\dl3\aaf7a5b0\84f01b09_b10acb01\DAL_QSYSCamper.DLL'. 
Type B originates from 'DAL_QSYSCamper, Version=1.0.0.0, Culture=neutral, 
PublicKeyToken=null' in the context 'LoadNeither' at 
location 'C:\Users\myusername\Documents\Projects\QSYS\Deleteme\UI\MVCClient\bin\DAL_QSYSCa
mper.DLL'.
Run Code Online (Sandbox Code Playgroud)

这种情况正在发生,而VS-VS中的调试设法停止进入源DAL项目,即使我已从程序集中加载并且项目未被网站项目重新引用(它们都在解决方案中).

我确实理解错误,但我不明白如何以及为什么从两个位置使用/加载程序集 - 我只从文件中加载一次,并且没有参考项目.

应该提一下,我也使用Windsor进行DI.尝试从会话中提取对象的对象是A)来自该DAL程序集的类; B)由Windsor注入网站课程.我将努力为这个问题添加一些示例代码,但是想要把它放在外面,以防我明白我做错了什么.

c# reflection casting

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