这是从以下位置复制的示例:
如何在 C# 中读取 app.config 中的自定义配置部分
我想阅读 app.config 中的以下自定义部分:
<StartupFolders>
<Folders name="a">
<add folderType="Inst" path="c:\foo" />
<add folderType="Prof" path="C:\foo1" />
</Folders>
<Folders name="b">
<add folderType="Inst" path="c:\foo" />
<add folderType="Prof" path="C:\foo1" />
</Folders>
</StartupFolders>
Run Code Online (Sandbox Code Playgroud)
这也是我的情况。但是,我不想创建自定义类来处理值,在 web.config 中定义此类,然后最终使用它。对于我的需求来说,它很重。
相反,我想做一些非常简单的事情——以 XML 形式检索一个部分。然后我可以使用常规 Linq.Xml 来解析它。这样,我不需要为每个部分创建新的类,也不需要声明它们。就我的目的而言,一方面它足够了,另一方面又很小(我做了一次,嵌套部分的键值映射器)。即完美。
唯一缺少的部分是(我的问题)——如何获取 XML 形式的 web.config 部分?关于该部分的注意事项:
因此,我并不是在寻找一种解决方法,如何将整个部分压缩为 appSettings 中的值,但我确实在寻找一种方法来获取适当的部分作为 XML。
我想从 ConfigManager (!) 获取它,因为这样我就不必处理解析应该读取哪个 web.config 等问题。即,比手动模仿 web.config 优先级更少出错的机会。
请原谅我提醒这一点,但请避免“答案”,你不应该这样做,每个部分使用自定义类等。我已经考虑过这一点,并选择反对它。
整个问题都在标题中,所以我想强调一下:
我对当前值感兴趣(不在当前设置中)
我对实际值感兴趣(所以如果屏幕的亮度现在低于之前的一秒,那么值也应该更低)
可悲的是,尽管阅读了很多帖子,但我不知道答案.我写了一点实用工具,每一秒都显示时间和亮度.并且它不起作用 - 因为当手机(LG L5与Android 4.0)自动降低亮度(屏幕变暗,并且毫无疑问)时,值保持不变!
以下是相关的代码:
try
{
float sys_brightness = android.provider.Settings.System
.getFloat(getContentResolver(),
android.provider.Settings
.System.SCREEN_BRIGHTNESS);
WindowManager.LayoutParams lp = getWindow().getAttributes();
float dim = lp.dimAmount;
float scr_brightness = lp.screenBrightness;
boolean dim_changed = (lp.flags & WindowManager.LayoutParams
.DIM_AMOUNT_CHANGED)>0;
textView.setText(String.format("%02d:%02d:%02d", hours, minutes, seconds)+" "
+String.format("%02f, %02f, %02f", sys_brightness,dim,scr_brightness)
+" "+Boolean.toString(dim_changed));
}
catch (SettingNotFoundException ex)
{
textView.setText("excepton");
}
Run Code Online (Sandbox Code Playgroud)
对于记录,值为 - 92,1.0,-1.0,false.每时每刻.
问题 - 如何读取当前,真实的亮度/暗淡值?
我将时钟添加到输出中以确保,我的读数正在滴答作响.他们是.
安全问题: 我现在不知道它是如何发生的,但是这些问题的读者想出这个问题的解决方案是安全威胁.所以请记住,我感兴趣的所有数据都是测量用户/活动的时间.就这样.用户做了什么 - 我根本不感兴趣!
我需要的是非常简单的概念,但我找不到解决方案.我想运行一个进程(在后台)并有一个用户交互的监听器.
所以,用户触摸屏幕 - >我的方法被触发.
用户解锁手机 - >我的方法被触发.
物理键盘上的用户类型 - >我的方法被触发.
所以简而言之,当手机仍在桌面上时,我的方法不会被触发:-)请注意,交互是与整个手机,而不是我的应用程序,我不感兴趣用户输入字母"K",我是甚至没有兴趣用户输入的东西,我关心的是用户以某种方式使用手机.
顺便说一句.用户走路时听音乐的情况(口袋里的电话) - 这不是互动.
我正在寻找的是一个触发器 - 类似于INTERACTION_DETECTED
,或者(相反地)一个设置的回调方法,reportInactiveUser(10*1000)
如果用户在10秒内处于非活动状态,它将被调用.
问题如何检测用户交互?
目的:测量手动使用手机的时间.
我发现BatteryStatsImpl
可以保存我需要的数据.它的实例是保留的BatteryStatsService
,然而它不允许任何访问它,只有IBatteryStats
它只有一个有趣的方法 - getStatistics
并且输出不包括用户活动计数器(或者它们都是零;我设置所有权限).所以,到目前为止 - 运气不好.
所有的调用都必须通过反思来进行,因为无论如何这些类都不可用;-).
重复警告:这篇文章不是关于屏幕开/关,而是关于键盘锁(这些问题不一样)。
幸运的是,键盘锁解锁时会直接发生事件,但是键盘锁锁定时事件又如何呢?我来回搜索了Android API事件列表,但根本看不到它(短语“锁定”-无,短语“ keyguard”-一个,表示关闭状态)。
我知道解决方法-等待屏幕关闭事件,在循环中检查键盘锁的状态并等待屏幕打开事件,因为从屏幕关闭开始,手机只能在两个方向上移动-手机将被锁定或屏幕将再来一次。并不是大量的代码,但是无论如何都会被黑客入侵,所以我希望我错过了手册中的内容,并且有直接的事件用于键盘锁锁定。
从CUDA设备(!)获取属性的众所周知的代码是枚举所有设备,并从中获取属性.然后我看到这样一块,激活给定的设备.
我有反向问题 - 假设已经选择了设备,我想获得它的属性(活动的),而不是系统中存在的所有设备.
我希望我以正确的方式写这个,因为我是CUDA的新手.
我知道(?)关于__new__
Python中构造函数背后的理论,但我要问的是常见的做法 - 这个构造函数真正用于什么目的(!)?
我读过有关初始化不可变对象(逻辑从移动__init__
到__new__
),别的什么吗?工厂模式?
请再次注意区别:
__new__
可以使用什么任务- 我不感兴趣__new__
是使用-我:-)我不用Python写任何东西,我的知识来自阅读,而不是来自经验.
我参考了ref
:
Foo &ref = ..
Run Code Online (Sandbox Code Playgroud)
我想调用一个ref.say()
定义为虚拟的方法,Foo
我知道它确实在子类中被覆盖(因为我也写了它们).
但是我想称say
它好像不是多态的,所以在Foo中定义的版本,而不是在子类中.
怎么做?
我想到的一件事是指针ref
,而不是取消引用它,这个技巧应该杀死多态,但我不确定这是否能保证取得预期的效果.
请注意,我不是坐在Foo或其任何一个孩子里面,Foo树是我当前POV的外部结构.
我仍然没有紧紧抓住承诺.说我有一个代码:
selected.eq(i) // blink
.fadeOut( 200 ).delay( 50 ).fadeIn( 400 )
.delay( 100 )
.fadeOut( 200 ).delay( 50 ).fadeIn( 400 );
Run Code Online (Sandbox Code Playgroud)
后来我打电话给:
selected.unbind('click')
.promise().done(function ()
{
selected.fadeOut(500);
});
Run Code Online (Sandbox Code Playgroud)
它可以作为例外 - 一旦完成闪烁,最后一次fadeOut
启动.但是当我通过插件闪烁时(设置使用jQuery动画)所以我的整个第一部分只是一个调用:
selected.eq(i).modernBlink({
duration: 750,
iterationCount: 3,
auto: true}
);
Run Code Online (Sandbox Code Playgroud)
眨眼的身体是:
ModernBlink.prototype._fallbackAnimation = function _fallbackAnimation( iterationCount ) {
var self = this,
duration = this.options.duration / 2;
if ( iterationCount > 0 || iterationCount === 'infinite' ) {
iterationCount = iterationCount === "infinite" ? "infinite" : iterationCount - 1; …
Run Code Online (Sandbox Code Playgroud) 我正在阅读Andrei Alexandrescu撰写的"D编程语言",一句话让我感到困惑.考虑这样的代码(第138页):
T[] find(T)(T[] haystack, T needle) {
while (haystack.length > 0 && haystack[0] != needle) {
haystack = haystack[1 .. $];
}
return haystack;
}
Run Code Online (Sandbox Code Playgroud)
并致电(第140页):
double[] a = [ 1.0, 2.5, 2.0, 3.4 ];
a = find(a, 2); // Error! ' find(double[], int)' undefined
Run Code Online (Sandbox Code Playgroud)
解释(代码下面的段落):
如果我们眯着眼睛够硬,我们也看到,在这种情况下,主叫方的意图是具有
T = double
和从漂亮的隐式转换受益int
于double
.然而,在一般情况下,让语言同时组合地尝试隐式转换和类型推导是一个冒险的命题,因此D不会尝试做所有这些.
我感到困惑,因为像C#这样的语言试图推断出类型 - 如果它不能这样做,用户会得到错误,但是如果可以,那么它就可以了.C#和它一起生活了几年,我没有听到任何关于这个功能如何破坏某个人日子的故事.
所以我的问题是这个 - 在上面的例子中推断类型涉及哪些危险?
我只能看到优点,很容易编写泛型函数,很容易调用它.否则,您必须在泛型类/函数中引入更多参数,并且仅为了推断类型而编写表示允许转换的特殊约束.
请注意这是关于编译器内部的问题.
我刚读过[1],在为泛型类型引入方差时,C#团队正在考虑是否应该自动计算类型是否为共变量或逆变量.当然这是一段历史,但是我想知道怎么做呢?
是采用所有方法(不包括构造函数)并检查类型是否在位in
或out
足够位置?
[1] Jeffrey Richter,CLR来自C#,第4版,第281页.
android ×3
c# ×3
events ×2
app-config ×1
brightness ×1
c++ ×1
constructor ×1
covariance ×1
cuda ×1
d ×1
generics ×1
javascript ×1
jquery ×1
keyguard ×1
keyguardlock ×1
methods ×1
nvidia ×1
polymorphism ×1
python ×1
screen ×1
templates ×1
virtual ×1
web-config ×1
xml ×1