Cannot assign script to objects when class is within a Namespace

I have a namespace that is a collection of classes that all need to know about each other. I want to be able to assign these different classes to objects. However, when I go to Add Component the Foo script file does not show up as a choice.

I have read some other issues related to this and they all seem to be based on default parameters. But as you can see I am not using any default params. Is there some other reason that my classes are not showing up as available scripts to assign to objects?

namespace Foo
{

    public enum mytype { Basic, Standard, Deluxe, Premium };

    public class Owner : MonoBehaviour
    {
        private string _name;
        private double _cash;
        private double _networth;

        public Owner()
        {
            _cash = 100000.00;
            _networth = _cash;
        }

        public string name
        {
            get { return _name; }
            set { _name = name; }
        }
        public double cash
        {
            get { return _cash; }
            set { _cash = cash; }
        }
        public double networth
        {
            get { return _networth; }
            set { _networth = networth; }
        }
    }
}

Good catch on constructor.

MonoBehaviours didn’t used to work in namespaces, but in Unity 4 they absolutely do.

I think you’re not supposed to use constructors for MonoBehaviours - you should use Awake and Start methods.

MonoBehaviours in namespaces might be not supported, I don’t remmember exactly.