我已经创建了一个多平台项目,除了一件小事之外,一切都很顺利.当我添加特定的平台文件时,例如:
它没有像本文中那样以树形方式很好地显示:
多目标(查看文章中的最后一张图片,了解我的意思)..
任何想法如何"教"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)
对于这种情况的任何想法?
我想在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"是一种TellTheClientThatIAmStillHereCallback).通过检查回调上的通信状态,我也可以"知道"客户端是否已经死亡.与此类似的东西:
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)
我的问题,换句话说:
所以基本上,你会使用回调来验证客户的"仍然生存状态",或者你会使用民意调查并跟踪"我没听说过客户多久"......
很多问题都很接近,但没有人回答我的问题......
如何在C#3.5中使用反射来获取程序集中的所有静态类.我已经定义了所有类型,但没有IsStatic属性.计数0构造函数非常慢,也无法正常工作.
任何提示或一行代码?:-)
克里斯
两者之间的一个简单问题:我有一个简单的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) 这个问题可能是主观的,但我认为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,改变应用程序的行为......)
我只是想知道一些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) 好的,
这更多是这些“概念性问题”之一,但我希望我能得到一些正确方向的指示。首先是所需的场景:
使用 Tamir.SharpSsh 提供的 SFTP 类,这两件事都非常容易,但如果我只使用一个线程,那就有点慢了。特别是子目录的递归变得非常“UI 阻塞”,因为我们正在谈论 10.000 个目录。
我的基本方法很简单,创建某种“池”,在其中保留 10 个打开的 SFTP 连接。然后向第一个工作人员查询目录列表。如果获得了该列表,则发送下一个空闲工人(例如1-10,第一个也再次空闲)以获取子目录详细信息。一旦有工人空闲,就派他到子子目录去。等等...
我知道线程池、简单的线程并做了一些测试。让我有点困惑的是:我基本上需要......
我目前不确定实现细节,特别是“要做的工作”和“维护线程列表”部分。
这是一个好主意吗:
好吧,到目前为止...
顺便说一句,我也可以使用 PRISM 事件和命令,但我认为问题是不相关的。也许 EventModel 会发出“工作包”处理完成的信号......
感谢您的任何想法,评论家..克里斯
我正在使用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) 给定两张图像,我如何轻松检查一张图像是否是另一张图像的缩放版本?
性能不是问题;它只需要合理准确,并且在 .NET 平台上工作即可。
我考虑缩小较大的图像以匹配较小的图像,然后比较图像校验和或在重新缩放后迭代比较各个像素;但其中任何一个都只能捕获精确匹配,这似乎不太可能是通过将原始较小图像放大然后缩小而产生的。
也许有一种方法可以结合使用色调分布、亮度等“统计数据”?
说实话,我此刻有点懒惰.我尝试了3分钟的搜索,但是我得到了很多Windows7和C#相关的东西,而不是我想要的东西.无论如何它是一个宠物项目,所以我试试看:
有没有办法找出我如何连接到WP7的互联网?
背景:任何为有趣目的而编写的应用程序,例如图片排序应用程序.当我通过WLAN上线(例如200mB)时,我想让它与我的服务器同步很多东西,但如果我使用昂贵的GPRS连接,它不应该做任何事情......
感谢您的任何提示,实际上一个带有良好搜索词的谷歌搜索引擎优化将达到诀窍:-)
克里斯
c# ×6
.net ×2
nhibernate ×2
android ×1
code-behind ×1
environment ×1
image ×1
java ×1
list ×1
reflection ×1
sftp ×1
static ×1
wcf ×1