プロジェクトでは、フォーム要素のカスタムWebUserControl(標準のバリデータやその他のシステム固有の関数をカプセル化しています)があります。私のユーザコントロールは "DropDownListField"と "TextBoxField"です。何らかの理由で、私は、コードをステップ実行して見ても、文は常にfalseを返し、「場合」「コントロール」を割り当てなっていることを私のWebユーザーコントロールのWebUserControlを使用したC#ASP.NET GetType()Webサービスの問題
string parameterValue = null;
foreach (object control in myMultiView.Views[myMultiView.ActiveViewIndex].Controls)
{
if (control.GetType() == typeof(DropDownListField))
parameterValue = ((DropDownListField)control).Value;
if (control.GetType() == typeof(TextBoxField))
parameterValue = ((TextBoxField)control).Value;
}
:ページの背後にあるコードでは、私はこのコードを持っています。このコードは、プロジェクト内の別の場所にありますが、他の場所では標準の.netコントロール "TextBox"と "DropDownList"が使用され、他の場所ではコードが機能します。
これはWebユーザーコントロールではうまくいかない理由は誰にも分かりますか?
UPDATE: うーんので、デバッグで、私はこれを見つけた:
?control.GetType();
BaseType: {Name = "DropDownListField" FullName = "WebUI.UserControls.Fields.DropDownListField"}
?typeof(DropDownListField);
BaseType: {Name = "UserControl" FullName = "System.Web.UI.UserControl"}
だからtypeof演算だけで、彼らは、ユーザーがそれはそう完全なタイプではない制御されている認識しています。
誰かが特定のユーザーコントロールの種類を確認する方法を知っていますか?
私は実際の型を調べるために、デバッグを使用し、それらが同じタイプではありません推測しています。 –
@steven更新を参照してください。 – William