これは間違いなく機能します。私はgithubにこれらのすべてのセットを持っています。
どのようなコントロールが設定されているかを示すコードを追加できますか?
これは、これがどのように表示されるかを示す抜粋です。
public static T Find<T>(this UITestControl parent) where T : UITestControl, new()
{
return new T() { Container = parent };
}
public static IEnumerable<T> FindAll<T>(this UITestControl parent) where T : UITestControl, new()
{
return parent.Find<T>().FindAllAsType();
}
private static IEnumerable<T> FindAllAsType<T>(this T current) where T : UITestControl, new()
{
if (typeof(T).IsSubclassOf(typeof(HtmlControl)))
{
return current.FindMatchingControls().Select(x => new T().ExtendFrom(x));
}
return current.FindMatchingControls().OfType<T>();
}
private static IEnumerable<U> FindAllCastTo<T, U>(this T current) where T : UITestControl
{
return current.FindMatchingControls().Cast<U>();
}
最も可能性が高い場合には、コントロールの種類は、あなたがするか、それがNULLであること、それをキャストしようとしているものではないということです。
すべてがあなたの説明どおりであれば、それはうまくいくはずです。私はあなたが行方不明のものがあると思う。私はあなたにお勧めします:a)デバッガでステップスルーし、実行時に "コントロール"の種類を確認し、b)より完全なコードを投稿してください。 –
また、コントロールがnullでないことを確認してください!それは前に私を捕まえた。 –
コンストラクタを呼び出す行はどこに追加してください。 )もしあなたがその行を見つけたら、おそらくそれをあなた自身で解決するだろう;しかし、そうでなければ私はまだここにいる) –