C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ASP.NET2.0での参照(1.1との違い?)


(過去ログ 38 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■19687 / inTopicNo.1)  ASP.NET2.0での参照(1.1との違い?)
  
□投稿者/ アミアミ (1回)-(2008/05/27(Tue) 18:19:34)

分類:[ASP.NET (C#)] 

ASP.NET1.1→2.0の移行作業を行うことになったのですが以下質問させてください。

とりあえずある程度のソースをまとめて変換ウィザードを実行しました。
しかし中々うまくビルドができません。

1.1のソースで各クラスに指定してある名前空間が参照できていないようで
散々悩んだあげくApp_Code以下に名前空間と同じ名前・構成のツリー状にフォルダを作成し
名前空間に対応するソースを突っ込んでいけばなんとかビルドは通りました。

しかしそうすると〜.aspxの処理ロジック部分、〜aspx.csが全てApp_Codeフォルダ以下に
移動することになり、保守面で嫌〜な感じです。

自分はASP.NET自体全く初心者で申し訳ないですが、C#はある程度わかるので
以下2点質問させてください。

1、各クラスファイルのnamespace XXXと宣言している名前空間はただパブリックなだけでは
  参照できないのでしょうか?どうもフォルダ構成で参照できる範囲の制限を感じます。


2、以下の図でAAA.cs内の変数の型にCCC.aspx.csのクラスの型を使用できますでしょうか?
  同じ様にBBB.ascx.cs内の変数の型にCCC.aspx.csのクラスの型を使用できますでしょうか?
  現状、そのまま宣言するとエラーとなります。参照する方法はあるのでしょうか?
  <>内はフォルダです。

<WWW>
  <App_Code>
    <AAA>
      AAA.cs
  <BBB>
    BBB.ascx
    BBB.ascx.cs
  <CCC>
    CCC.aspx
    CCC.aspx.cs


VWD2008 Expressで開発しております。

1、2の質問ともVS2003では可能でした。
アドバイス程度でも構いませんのでご教授願えませんでしょうか?
よろしくお願いいたします。
引用返信 編集キー/
■19742 / inTopicNo.2)  Re[1]: ASP.NET2.0での参照(1.1との違い?)
□投稿者/ Jitta on the way (101回)-(2008/05/29(Thu) 07:57:04)
No19687 (アミアミ さん) に返信
> ASP.NET1.1→2.0の移行作業を行うことになったのですが以下質問させてください。
>
> とりあえずある程度のソースをまとめて変換ウィザードを実行しました。
> しかし中々うまくビルドができません。
>
> 1.1のソースで各クラスに指定してある名前空間が参照できていないようで
> 散々悩んだあげくApp_Code以下に名前空間と同じ名前・構成のツリー状にフォルダを作成し
> 名前空間に対応するソースを突っ込んでいけばなんとかビルドは通りました。
>
> しかしそうすると〜.aspxの処理ロジック部分、〜aspx.csが全てApp_Codeフォルダ以下に
> 移動することになり、保守面で嫌〜な感じです。
>
> 自分はASP.NET自体全く初心者で申し訳ないですが、C#はある程度わかるので
> 以下2点質問させてください。
>
> 1、各クラスファイルのnamespace XXXと宣言している名前空間はただパブリックなだけでは
>   参照できないのでしょうか?どうもフォルダ構成で参照できる範囲の制限を感じます。

名前空間のトップから参照もできませんか?




>
>
> 2、以下の図でAAA.cs内の変数の型にCCC.aspx.csのクラスの型を使用できますでしょうか?
>   同じ様にBBB.ascx.cs内の変数の型にCCC.aspx.csのクラスの型を使用できますでしょうか?
>   現状、そのまま宣言するとエラーとなります。参照する方法はあるのでしょうか?

パーシャルの出番かと思われます。
引用返信 編集キー/
■19932 / inTopicNo.3)  Re[2]: ASP.NET2.0での参照(1.1との違い?)
□投稿者/ アミアミ (2回)-(2008/06/02(Mon) 17:49:30)
2008/06/02(Mon) 17:51:16 編集(投稿者)
2008/06/02(Mon) 17:50:22 編集(投稿者)

Jitta on the wayさん、レスありがとうございます。

> 名前空間のトップから参照もできませんか?

・フォルダ構成
<WWW>
  <App_Code>
    <AAA>
      <Migrated>
        <BBB>
          BBB01.cs
    App01.cs
  <CCC>
    <DDD>
      DDD01.ascx
      DDD01.ascx.cs
      Header.ascx
      Header.ascx.cs


【App01.cs】
namespace XXX.Web.YYY
{
  abstract public class App01
  {
    abstract public Header Header
    {
      get;
    }
  }
}

【Header.ascx.cs】
namespace XXX.Web.YYY
{
  public partial class Header : DDD01
  {

  }
}

【DDD01.ascx.cs】
namespace XXX.Web.YYY
{
  public partial class DDD01 : BBB01
  {

  }
}

【BBB01.ascx.cs】
namespace XXX.Web.YYY
{
  abstract public class BBB01 : System.Web.UI.UserControl
  {

  }
}


上記のApp01.cs内のHeaderプロパティに対し、型または名前空間が見つかりませんでした、と
エラーが出ています。

ただ、Header.cs内でも継承しているDDD01の参照が見つかっていません。
public partial class Header : XXX.Web.YYY.DDD01などにしてもDDD01は参照できません。
クラスビュー等にも表示がありませんでした。

> パーシャルの出番かと思われます。
既にパーシャルなのでどうすればよいのか・・・。


実際のソースはもっと(ウザイことに)ガリガリ継承しているフレームワークで
問題としては根本的に違っている気もすごくしている状態で質問していて申し訳ないです。


ちょっと新しくテストプロジェクト作っていろいろ試します。
アドバイスいただけたら幸いです。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -