//如下代码:
namespace MyNameSpace
{
    public class MyClass
    {
        public void Test()
        {
            //下面是是死的。 如何自动获取到代码所在的命名空间与所在类名呢?
            String CurrNameSpaceAndClassName = "MyNameSpace.MyClass";
            Type type = Type.GetType(CurrNameSpaceAndClassName);
            //
        }
    }
}

解决方案 »

  1.   

    Type type = typeof(MyClass);
    string name = type.FullName;
      

  2.   

    Type type = new System.Diagnostics.StackTrace().GetFrame(0).GetMethod().DeclaringType;
      

  3.   

    System.Reflection.MethodBase.GetCurrentMethod().ReflectedType
      

  4.   

    this.GetType()就可以获得当前的类的信息了,你何必用字符串来处理?
      

  5.   

    如果是静态函数GetType()就不同用了
      

  6.   

    如果是Java还不能用了呢。lz没有说,干嘛把适用场景无限延伸?
      

  7.   

    MethodBase.GetCurrentMethod().DeclaringType
      

  8.   

    public IEnumerable GetNearClass()
            {
                var myType = this.GetType();
                var ns = myType.Namespace;
                List<Type> types= new List<Type>();
                foreach (var assembly in System.AppDomain.CurrentDomain.GetAssemblies())
                {
                    foreach (var type in assembly.GetTypes())
                    {
                        if (type.Namespace == ns)
                            types.Add(type);
                    }
                }
               
                return types;
            }
    试试吧
      

  9.   


    也就是继承的子类。测试了一下, 确实有这种情况出现。
    http://blog.csdn.net/yenange/article/details/8701614不过, 我要所的正好是你的这种方法。谢谢诸位了!
      

  10.   

    你的意思是GetType()调用的结果一律返回System.Object(所有的类都是Object的子类)。
    那要GetType()干什么,一个永远返回常数的函数还不如不要算了。
      

  11.   


    平静点吧, 版主, 我给的 url 你都没有看吧。每种方法都有自己的用处, 何必生气呢?结帖了, 再次谢谢你, 也谢谢各位, 学到了很多。