我有一个应用程序有几个对象(目前约有50个,但正在增长).应用程序中每个对象只有一个实例,这些实例在组件之间共享.
我所做的是从基础BrokeredObject类派生所有对象:
class BrokeredObject
{
virtual int GetInterfaceId() = 0;
};
Run Code Online (Sandbox Code Playgroud)
每个对象类型都返回一个唯一的ID.这些ID保存在头文件中.
然后我有一个ObjectBroker"工厂".当有人需要一个对象时,请调用GetObjectByID().boker在STL列表中查看该对象是否已存在,如果存在,则返回该对象.如果没有,它会创建它,将其放入列表并返回它.一切都很好.
BrokeredObject *GetObjectByID(int id)
{
BrokeredObject *pObject;
ObjectMap::iterator = m_objectList.find(id);
// etc.
if(found) return pObject;
// not found, so create
switch(id)
{
case 0: pObject = new TypeA; break;
case 1: pObject = new TypeB; break;
// etc.
// I loathe this list
}
// add it to the list
return pObject;
}
Run Code Online (Sandbox Code Playgroud)
我觉得痛苦的是维护这个ID列表并让每个类实现它.我至少让我的消费者的生活变得更容易了,让每个类型都拥有关于它自己的ID的信息,如下所示:
class TypeA : public BrokeredObject
{
static int get_InterfaceID() { return IID_TYPEA; }
int …Run Code Online (Sandbox Code Playgroud) 如何检测我的Compact Framework应用程序何时智能最小化(智能最小化是当用户单击Pocket PC右上角的"X"按钮时发生的情况)?
Deactivate事件不是正确的方式,因为它发生在最小化以外的情况下,例如在主窗体顶部显示消息框或其他窗体时.窗体的WindowState没有用,因为.NET CF上没有"Minimized"WindowState.
我听说通过设置MinimizeBox = false,我的应用程序将被关闭而不是最小化.但我实际上不希望我的应用程序关闭,我只是想知道它何时被最小化.
我遇到了一个问题,我很确定我知道答案,但我想我至少会问,看看是否有一些"神奇的子弹"可能会让我头疼不已.
这是高级视图.
我有一个托管应用程序.此应用程序通过来自不同供应商的第三方库与硬件连接.我可以完全控制使用托管应用程序并对硬件API库进行零控制.
供应商A仅提供32位本机SDK.为了允许我们在64位系统上使用它,我们将应用程序标记为以32位模式运行.一切都好.
我们现在与Vendor B集成,后者在64位计算机上提供64位特定的本机API库.来自供应商B的32位本机DLL将无法在64位系统上运行(尝试过).如果我构建一个运行为64位或AnyCPU的测试工具,它可以正常工作.如果我将其标记为32位,则在P/Invoke调用上失败.
似乎供应商A和供应商B硬件将在64位PC上互斥,但我想知道是否有人有关于如何解决这个问题的建议.
在Windows Mango OS中,是否支持任何脚本环境?
它是否支持powershell或python或perl?
我有一个后台工作线程,它不断地将数据同步到远程服务器或从远程服务器同步数据.当我第一次运行应用程序时,一切似乎都正常.它每30秒发出一次Web请求,数据返回成功.
如果我让模拟器长时间运行,最终请求将因(400)错误请求而失败.所有后续请求都做同样的事情.如果我杀了应用程序并重新启动它...一切都很好.
有人有主意吗?代码如下.
public RestResponse<T> Execute<T>(RestRequest request) {
var restResponse = new RestResponse<T>();
var serializer = new JavaScriptSerializer();
var urlPath = baseUrl + "/" + request.Resource;
Console.WriteLine("Requesting: " + urlPath);
var httpRequest = (HttpWebRequest)HttpWebRequest.Create(new Uri(urlPath));
httpRequest.Headers = request.Headers;
foreach (string key in clientHeaders.Keys)
httpRequest.Headers.Add(key, clientHeaders[key]);
httpRequest.Headers.Add("Accept-Encoding", "gzip,deflate");
Authenticator.Authenticate(httpRequest);
httpRequest.Method = request.Method.ToString();
HttpWebResponse httpResponse = null;
try {
if ((request.Method == Method.POST) && (!request.IsJsonPost))
SetPostData(httpRequest, request);
if ((request.Method == Method.POST) && (request.IsJsonPost)){
SetJsonPostData(httpRequest, request);
}
httpResponse = (HttpWebResponse)httpRequest.GetResponse();
var reader = …Run Code Online (Sandbox Code Playgroud) 我需要自动检测设备分辨率,现在我有一个全局var&hardwire分辨率:
Public gDeviceRes As String = "640"
'Public gDeviceRes As String = "320"
Run Code Online (Sandbox Code Playgroud)
然后重新编译每个设备,有没有人有一个快速snippit的代码?
我希望能够检索 SD 卡的序列号、制造商以及它可能提供的任何其他信息。Java 或者只是一个运行命令就很好了。 Compact Framework 可以做到这一点,但这对我没有帮助。
我正在写一个WP7应用程序,我有代码要求用户每五次运行一次市场评论,并且指数退出,这样就不那么烦人了.如果用户在我的"您要查看"消息框中单击"确定",我会启动审阅任务,并存储用户已审阅该应用程序,因此我不再询问.
var marketplaceReviewTask = new MarketplaceReviewTask();
marketplaceReviewTask.Show();
IsolatedStorageSettings.ApplicationSettings["HasReviewed"] = true;
Run Code Online (Sandbox Code Playgroud)
然而,尽管他们很可能对应用程序进行了评分,但实际上我并不是100%肯定他们做过的.有没有办法检查当前用户是否真的写过评论?MarketplaceReviewTask()是否具有返回值?我找不到任何表明我能听的东西.
我有一个进度条,我想根据布尔值改变颜色; true为绿色,false为红色.我有代码似乎应该工作(它将它绑定到文本框时返回正确的值)但不是当它是进度条的颜色属性时.转换器定义为此(在App.xaml.cs中,因为我想在任何地方访问它):
public class ProgressBarConverter : System.Windows.Data.IValueConverter
{
public object Convert(
object o,
Type type,
object parameter,
System.Globalization.CultureInfo culture)
{
if (o == null)
return null;
else
//return (bool)o ? new SolidColorBrush(Colors.Red) :
// new SolidColorBrush(Colors.Green);
return (bool)o ? Colors.Red : Colors.Green;
}
public object ConvertBack(
object o,
Type type,
object parameter,
System.Globalization.CultureInfo culture)
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我将以下内容添加到App.xaml(因此它可以是全局资源):
<Application.Resources>
<local:ProgressBarConverter x:Key="progressBarConverter" />
<DataTemplate x:Key="ItemTemplate">
<StackPanel>
<TextBlock Text="{Binding name}" Width="280" />
<TextBlock Text="{Binding isNeeded,
Converter={StaticResource progressBarConverter}}" />
<ProgressBar>
<ProgressBar.Foreground> …Run Code Online (Sandbox Code Playgroud) 在我的WP 7.1应用程序中,我有一个带有多个按钮的页面.
我注意到,当按下任何一个按钮时,不能按任何其他按钮.
我怎么能克服这个?我需要能够允许用户同时按下多个按钮.
c# ×3
.net ×1
32bit-64bit ×1
c++ ×1
data-binding ×1
ide ×1
interop ×1
java ×1
linux ×1
minimize ×1
mono ×1
multi-touch ×1
perl ×1
pocketpc ×1
powershell ×1
python ×1
scsi ×1
sd-card ×1
silverlight ×1
smartphone ×1
xamarin.ios ×1