我在Visual Studio中引用了一个COM库,因此它为我自动创建了相应的Interop程序集.我想GetType()对这些com对象做一个,但它们总是返回System.__ComObject.查询它们的接口有效:
bool isOfType = someComeObject is ISomeComObject; //this works
Run Code Online (Sandbox Code Playgroud)
但我真正想要的是返回com对象的实际类型:
Type type = someComeObject.GetType(); //returns System.__ComObject :-(
Run Code Online (Sandbox Code Playgroud)
有谁知道怎么做我想做的事情?
是否有任何bash命令可以让你获得STDOUT的第n行?
也就是说,会采取这种做法
$ ls -l
-rw-r--r--@ 1 root wheel my.txt
-rw-r--r--@ 1 root wheel files.txt
-rw-r--r--@ 1 root wheel here.txt
Run Code Online (Sandbox Code Playgroud)
并做一些类似的事情
$ ls -l | magic-command 2
-rw-r--r--@ 1 root wheel files.txt
Run Code Online (Sandbox Code Playgroud)
我知道在编写要重用的脚本时这是不好的做法,但是当我每天使用shell时,能够以这种方式过滤我的STDOUT对我来说是有用的.
我也意识到这将是半简单的命令写入(缓冲区STDOUT,返回一个特定的行),但我想知道是否有一些标准的 shell命令来执行此操作,而无需我将脚本放到位.
我正在进入微控制器黑客攻击,虽然我对按位运算符和硬件说话非常熟悉,但我发现结果代码非常冗长和样板.我的高级程序员希望找到一种有效但有效的方法来清理它.
例如,寄存器中有很多设置标志:
/* Provided by the compiler */
#define SPIE 7
#define SPE 6
#define DORD 5
#define MSTR 5
#define CPOL 4
#define CPHA 3
void init_spi() {
SPCR = (1 << SPE) | (1 << SPIE) | (1 << MSTR) | (1 << SPI2X);
}
Run Code Online (Sandbox Code Playgroud)
值得庆幸的是,有些宏隐藏了实际的端口IO操作(左侧),所以它看起来像一个简单的赋值.但对我来说,所有这些语法都是混乱的.
要求是:
我想要的语法是:
SPCR =位(SPE,SPIE,MSTR,SPI2X);
到目前为止,我提出的最好的是组合宏/函数:
#define bits(...) __pack_bits(__VA_ARGS__, -1)
uint8_t __pack_bits(uint8_t bit, ...) {
uint8_t result = 0;
va_list args;
va_start(args, bit);
result |= (uint8_t) (1 << bit);
for …Run Code Online (Sandbox Code Playgroud) 我不知道为什么IndexOutOfRangeException我要清理时间System.Collections.Generic.List<T>.这有意义吗?
List<MyObject> listOfMyObject = new List<MyObject>();
listOfMyObject.Clear();
Run Code Online (Sandbox Code Playgroud) 可能重复:
NSTimer不会停止
在我的应用程序中,我使用NStimer每3秒调用一次动画函数.我想在计时器仍在运行时停止此计时器并调用另一个事件.这可能吗?
我有一张表来存储县评估区的数据.我想添加一个计算列来告诉我该属性是否属于所有者.如果属性地址与所有者地址相同,我将"owner occupied"定义为true,否则为false.
由于来自县的源数据中的数据输入不准确,如果我进行严格的文本比较,我会得到很多虚假的非自住结果.所以我想测试"如果房产的街道名称不在所有者的地址中,或者房产的地址编号不在房主的地址中,那么这是一个非房东占用的房产"
我写了以下内容:
alter table appriasaldata add
IsOwnerOccupied as
case
((charindex(locastreetnumber, owneraddress) = 0) or (charindex(locastreetname, owneraddress) = 0))
when TRUE THEN 1 ELSE 0
end
SQL Server不喜欢CHARINDEX函数之后的=符号.我怎样才能将其重写为SQL Server可接受的?(如果重要的话,我正在使用SQL Server 2005.)
我正在开发一个尝试使用此示例实现MVP模式的asp.net(经典)应用程序.在尝试对我的演示者进行单元测试并使用以下模式时,psuedocode看起来像这样
//base view interface
public interface IView
{
event EventHandler Init;
event EventHandler Load;
bool IsPostBack { get; }
void DataBind();
bool IsValid { get;}
}
//presenter psuedo code
public class SomePresenter
{
public SomePresenter(ISomeDomainService service, IView someView)
{
...
//HOW DO WE TEST/VERIFY THAT THIS REGISTRATION OCCURS?
someView.Init += OnInit;
someView.Load += OnLoad;
}
}
...
//consuming code that exercises the above code, that needs to be tested
var presenter = new SomePresenter(someDomainService, someView);
Run Code Online (Sandbox Code Playgroud)
如何验证演示者是否正在执行预期的操作,即注册Init和Load事件?虽然这很容易在Phil Haack …
我正在使用此方法序列化我的对象:
public static string XmlSerialize(object o)
{
var stringWriter = new StringWriter();
var xmlSerializer = new XmlSerializer(o.GetType());
xmlSerializer.Serialize(stringWriter, o);
string xml = stringWriter.ToString();
stringWriter.Close();
return xml;
}
Run Code Online (Sandbox Code Playgroud)
它使XML像这样开始:
<?xml version="1.0" encoding="utf-16"?>
<MyObject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
Run Code Online (Sandbox Code Playgroud)
但我希望它看起来像这样:
<?xml version = "1.0" encoding="Windows-1252" standalone="yes"?>
<MyObject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
Run Code Online (Sandbox Code Playgroud)
那么,如何将编码更改为Windows-1252并设置standalone = yes?另外,如何让对象排除xmlns值?
我见过几个类似的问题,比如这个问题,但是我希望它对我来说可能更简单,也许是通过在某个地方设置一些属性?
更新2:在查看John的回答和评论之后,再考虑这个问题,我决定采用第二种方法.我不认为一次为第三方创建这个古怪的自定义xml应该被称为通用的"XmlSerialize".
所以,我创建了第二个获取XML文档的方法,首先,删除一个名称空间元素,如下所示:
xElement.Attributes().Where(a => a.IsNamespaceDeclaration && a.Value == "http://www.w3.org/2001/XMLSchema").Remove();
Run Code Online (Sandbox Code Playgroud)
然后,它用John的代码将它写入XML.最后它返回xml,遵循以下输出:
new XDeclaration("1.0", "Windows-1252", "yes").ToString()
Run Code Online (Sandbox Code Playgroud)
这很难看,但它让我真正得到了第三方理解我的XML所需要的东西.
我有一个标签式导航栏,我希望打开的标签有一个阴影,使其与其他标签区分开来.我还希望整个标签部分有一个阴影(见底部水平线)向上,阴影除了打开的所有选项卡的底部.
我将使用CSS3的box-shadow属性来做到这一点,但我无法找到一种方法来仅遮蔽我想要的部分.
通常情况下,我会用内容区域(更高z-index)覆盖打开标签的底部阴影,但在这种情况下,内容区域本身会有一个阴影,因此只会覆盖标签.
_______ _______ _______
| | | | | |
____|_______|__| |__|_______|______
阴影会从水平线向上,在垂直线的外面.
_______
| |
_______________| |_________________
这是一个实例:
那里有任何帮助,天才?
我正在连接我的第一个SubSonic 3应用程序(在ASP.NET MVC 1.0前端),我正在看Rob的SimpleRepository.我正在使用Castle.Windsor作为注入框架.
在我的应用程序启动中,我将Castle配置为将SubSonic SimpleRepository绑定到SubSonic IRepository.没有什么复杂的.但是,SimpleRepository有一个ctor重载,它带有两个值:连接字符串名称和一组SimpleRepositoryOptions.过去没有深入挖掘Castle,不清楚是否有办法通过配置(或其他方法)指定ctor参数.
现在,我有一个SimpleRepository的自定义实现,它在它的无参数ctor中显式创建了一个带有这些参数的SimpleRepository,但是如果我想在任何时候更改它们,它需要更改代码并重新编译.
是否有一种更优雅的方式来配置Castle以获取构造函数参数?
.net ×3
c# ×2
asp.net ×1
asp.net-mvc ×1
bash ×1
c ×1
com ×1
com-interop ×1
css ×1
css3 ×1
html ×1
interop ×1
ios ×1
iphone ×1
macros ×1
moq ×1
nstimer ×1
objective-c ×1
reflection ×1
sed ×1
shadow ×1
shell ×1
sql ×1
sql-server ×1
stdout ×1
subsonic ×1
subsonic3 ×1
t-sql ×1
unit-testing ×1