小编Chr*_*ert的帖子

获取VS2008到"树缩进"的部分类(如代码隐藏文件)

我已经创建了一个多平台项目,除了一件小事之外,一切都很顺利.当我添加特定的平台文件时,例如:

  • ServiceImpl.cs
  • ServiceImpl.Desktop.cs

它没有像本文中那样以树形方式很好地显示:

多目标(查看文章中的最后一张图片,了解我的意思)..

任何想法如何"教"VS 2008这样做?使用普通的XAML和Code-Behind,它可以正常工作......


好的,答案对于正常情况来说是完美的.现在,Silverlight项目仍然存在一些问题.该文件最初位于桌面项目中,因此解决方案有效.但是,如果"父"文件是一个链接,它似乎会导致问题(根本没有效果)...请参阅此代码:

<Compile Include="..\Messaging\Services\MessagingService.cs">
  <Link>Services\MessagingService.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Services\MessagingService.Silverlight.cs">
      <DependentUpon>MessagingService.cs</DependentUpon>
</Compile>
Run Code Online (Sandbox Code Playgroud)

对于这种情况的任何想法?

code-behind visual-studio-2008

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

WCF - 客户端回调与"保留订阅者列表"的轮询

我想在WCF中创建一个简单的客户端 - 服务器示例.我做了一些回调测试,到目前为止工作正常.我用以下界面玩了一下:

[ServiceContract(SessionMode = SessionMode.Required, CallbackContract = typeof(IStringCallback))]
public interface ISubscribeableService
{
    [OperationContract]
    void ExecuteStringCallBack(string value);

    [OperationContract]
    ServerInformation Subscribe(ClientInformation c);

    [OperationContract]
    ServerInformation Unsubscribe(ClientInformation c);
}
Run Code Online (Sandbox Code Playgroud)

这是一个简单的例子.稍微调整一下.您可以要求服务器"执行字符串回调",在这种情况下,服务器会反转字符串并调用所有已订阅的客户端回调.

现在,问题出现了:如果我想实现一个所有客户端都"注册"服务器的系统,并且服务器可以"询问"客户端是否还活着,你会用回调来实现吗(所以不要这样做"stringcallback"是一种TellTheClientThatIAmSti​​llHereCallback).通过检查回调上的通信状态,我也可以"知道"客户端是否已经死亡.与此类似的东西:

Subscribers.ForEach(delegate(IStringCallback callback)
                    {
                        if (((ICommunicationObject)callback).State == CommunicationState.Opened)
                        {
                            callback.StringCallbackFunction(new string(retVal));
                        }
                        else
                        {
                            Subscribers.Remove(callback);
                        }
                    });
Run Code Online (Sandbox Code Playgroud)

我的问题,换句话说:

  • 服务器可能有3个客户端
  • 客户A死了(我拉了笔记本电脑的插头)
  • 服务器死机并重新上线
  • 一个新客户出现了

所以基本上,你会使用回调来验证客户的"仍然生存状态",或者你会使用民意调查并跟踪"我没听说过客户多久"......

.net c# wcf

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

使用反射来获取静态类的列表

很多问题都很接近,但没有人回答我的问题......

如何在C#3.5中使用反射来获取程序集中的所有静态类.我已经定义了所有类型,但没有IsStatic属性.计数0构造函数非常慢,也无法正常工作.

任何提示或一行代码?:-)

克里斯

c# reflection static

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

ArrayList <WeakReference <Runnable >> - 如何整理好?

两者之间的一个简单问题:我有一个简单的WeakRunnableList.是这样确定把它清理干净(去除死皮参考),或者是有一个更优雅和更快的解决方案.我的WeakRunnableList的完整源代码:

public class WeakRunnableList
{
    private ArrayList<WeakReference<Runnable>> _items = new ArrayList<WeakReference<Runnable>>();

    public void Add(Runnable r)
    {
        _items.add(new WeakReference<Runnable>(r));
    }

    public void Execute()
    {
        ArrayList<WeakReference<Runnable>> remove = new ArrayList<WeakReference<Runnable>>();
        for (WeakReference<Runnable> item : _items)
        {
            Runnable tempCheck = item.get();
            if (tempCheck  == null)
            {
                remove.add(item);
            }
            else
            {
                tempCheck.run();
            }
        }
        _items.removeAll(remove);
    }
}
Run Code Online (Sandbox Code Playgroud)

java weak-references

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

在Android/Intellij/Jenkins中构建配置管理

这个问题可能是主观的,但我认为Stackoverflow仍然是最好的问题:

问题域是"高级Android编程".我不需要有关如何设置单个Android项目,如何使用库项目或如何使用ANT来构建正常项目的信息.

假设你有一个正在运行的应用程序,一个普通的Android项目(选择的IDE是IntelliJ,但这不应该真正重要)由Jenkins/Ant/Proguard构建.这个版本的结果是你将放入Play商店的最终APK.

现在假设您需要此应用程序作为免费和付费版本.到目前为止没问题,只需将所有共享代码放入库项目中,并创建两个子项目,一个用于启用许可证检查的App.java,另一个用于限制使用.

现在想象你也想要定位亚马逊,也许有新闻发布版本等等.所以你的代码开始出现分歧,但仍有很多东西是共享的,但某些部分是特定的,例如你所针对的市场.

在C#中有"条件编译语句",如"IF PLAY_STORE ...".是否有类似的Java/Android.此外,他们与ANT和构建过程一起玩得很好.

但我不仅限于条件编译."每个市场一个项目"的方法是另一个方法.我只是想了解一下如何以可持续的方式管理这些各种"构建配置".这意味着它适用于15个项目,针对2种口味的3个市场(免费和付费).我希望你能看到我所暗示的东西.对于所有应用程序,代码非常相似,但通过上面的示例,我将有90个不同的APK - 使用这些数字"仅在此构建中需要的源代码中手动注释等"只是不再削减它.

所以任何提示,工具,搜索词,这些问题域的经验(例如MAVEN,它会帮助我任何一个,或者是生成build.xml的ANT +脚本更好).另一个例子,如果我有一个针对所有目标市场的"真正的"Android项目,这将允许我做几乎任何事情.但当然,在缺点方面,如果我在最低级别添加一个新页面(例如一个印记页面),我需要进入90 Manifest.xml来添加页面...

谢谢你对此的任何帮助,克里斯

PS:我会在底部添加一些关于这个主题的链接,如果有人在没有答案的情况下遇到这个问题,这可能是"第一次读这个"部分

http://www.asyncdev.net/2011/02/android-dev-prod-builds/

http://www.slf4j.org/ (相关的"把JAR提供给IMPL"的方式)

(SLF4J只是一种减少依赖关系并在部署期间提供配置的好方法 - 只需添加一个不同的JAR.使用这样的东西可能对你自己的项目来说太过分了,但这只是一种方式.例如,对于许可证写入接口和像SLF4J这样的一些代码,然后在构建期间在Lib文件夹中提供PressRelease.jar或Productive.jar,改变应用程序的行为......)

environment android

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

Nhibernate - 初始化列表 - 最佳实践?

我只是想知道一些CodeWarning(ConstructorsShouldNotCallBaseClassVirtualMethods),如果有更好的方法来做到这一点.我有一个简单的日志收集器类,我使用NHibernate来检索一些对象.

有时我自己创建对象(当然)并将它们添加到NHibernate中以保持持久性.确保列表永远不为NULL的最佳方法是什么.

目前我这样做,但似乎并不"完美".关于这个话题的任何想法?

public class LogRun
{
    public virtual int Id { get; private set; }
    public virtual DateTime StartTime { get; set; }
    public virtual DateTime EndTime { get; set; }
    public virtual IList<Log> LogMessages { get; set; }
    public virtual int LogMessageCount { get { return LogMessages.Count; } }

    public LogRun()
    {
        LogMessages = new List<Log>();
    }


}
Run Code Online (Sandbox Code Playgroud)

nhibernate list

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

在 C# 中使用 SFTP 时的线程最佳实践

好的,

这更多是这些“概念性问题”之一,但我希望我能得到一些正确方向的指示。首先是所需的场景:

  • 我想查询 SFTP 服务器的目录和文件列表
  • 我想同时上传或下载文件

使用 Tamir.SharpSsh 提供的 SFTP 类,这两件事都非常容易,但如果我只使用一个线程,那就有点慢了。特别是子目录的递归变得非常“UI 阻塞”,因为我们正在谈论 10.000 个目录。

我的基本方法很简单,创建某种“池”,在其中保留 10 个打开的 SFTP 连接。然后向第一个工作人员查询目录列表。如果获得了该列表,则发送下一个空闲工人(例如1-10,第一个也再次空闲)以获取子目录详细信息。一旦有工人空闲,就派他到子子目录去。等等...

我知道线程池、简单的线程并做了一些测试。让我有点困惑的是:我基本上需要......

  • 我创建的线程列表,例如 10 个
  • 将所有线程连接到服务器
  • 如果连接断开,则创建一个新线程/sftp 客户端
  • 如果有工作要做,则占用第一个空闲线程并处理工作

我目前不确定实现细节,特别是“要做的工作”和“维护线程列表”部分。

这是一个好主意吗:

  • 将工作封装在一个对象中,其中包含工作描述(路径)和回调
  • 将线程发送到无限循环,等待 100 毫秒等待工作
  • 如果 SFTP 死了,要么恢复它,要么杀死整个线程并创建一个新线程
  • 如何封装这个,我是写自己的“10ThreadsManager”还是有一些

好吧,到目前为止...

顺便说一句,我也可以使用 PRISM 事件和命令,但我认为问题是不相关的。也许 EventModel 会发出“工作包”处理完成的信号......

感谢您的任何想法,评论家..克里斯

c# sftp multithreading

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

快速清除NHibernate数据库

我正在使用NHibernate进行ORM,一切正常.

现在我开始编写一些单元测试(使用数据库,我不想付出过多的努力来抽象它,我知道它不完美,但它的工作原理......).

我需要确保DB对于某些测试来说是完全空的.当然,我可以创建整个数据库.但这似乎有点矫枉过正,我认为需要更长的时间......

是否有DELETE_ALL命令清除所有表,我可以在NHibernate中使用?

克里斯

编辑:一个简短的更新,我决定采用SQLite方式,用NHibernate改变这个没问题.有一些陷阱,我使用这个配置,它的工作原理.否则,由于nHibernate在会话期间关闭连接,可能会出现"找不到表"错误,从而导致"丢失"数据库...

为了您的方便:复制并粘贴......

.Database(SQLiteConfiguration.Standard.ConnectionString("Data Source=:memory:;Version=3;New=True;Pooling=True;Max Pool Size=1;")  
                       .Raw("connection.release_mode", "on_close"))
                        .Mappings(obj => obj.AutoMappings.Add(_config.APModel));
Run Code Online (Sandbox Code Playgroud)

c# nhibernate

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

如何检查一个图像是否是另一个图像的缩放版本

给定两张图像,我如何轻松检查一张图像是否是另一张图像的缩放版本?

性能不是问题;它只需要合理准确,并且在 .NET 平台上工作即可。

我考虑缩小较大的图像以匹配较小的图像,然后比较图像校验和或在重新缩放后迭代比较各个像素;但其中任何一个都只能捕获精确匹配,这似乎不太可能是通过将原始较小图像放大然后缩小而产生的。

也许有一种方法可以结合使用色调分布、亮度等“统计数据”?

.net c# image

5
推荐指数
2
解决办法
3002
查看次数

WP7 Wlan检测(我在线怎么样)

说实话,我此刻有点懒惰.我尝试了3分钟的搜索,但是我得到了很多Windows7和C#相关的东西,而不是我想要的东西.无论如何它是一个宠物项目,所以我试试看:

有没有办法找出我如何连接到WP7的互联网?

背景:任何为有趣目的而编写的应用程序,例如图片排序应用程序.当我通过WLAN上线(例如200mB)时,我想让它与我的服务器同步很多东西,但如果我使用昂贵的GPRS连接,它不应该做任何事情......

感谢您的任何提示,实际上一个带有良好搜索词的谷歌搜索引擎优化将达到诀窍:-)

克里斯

c# windows-phone-7

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