コード例 #1
0
ファイル: Tests.cs プロジェクト: tpluscode/net-Dictionary
        public void Immutable()
        {
            // Arrange
            var obj = new SomeImmutableData(new Guid("8d995e6e-af88-4043-8c31-8ba04c6b4298"), 23, "foo bar", null);

            // Act
            var dict = DictionaryMaker.Make(obj);

            // Assert
            Assert.AreEqual(obj.Id, dict["Id"]);
            Assert.AreEqual(obj.Integer, dict["Integer"]);
            Assert.AreEqual(obj.Text, dict["Text"]);
            Assert.AreEqual(obj.Date, dict["Date"]);
        }
コード例 #2
0
ファイル: Tests.cs プロジェクト: tpluscode/net-Dictionary
        public void ExpandoWithType()
        {
            // Arrange
            dynamic obj = new ExpandoObject();

            obj.Id      = new Guid("8d995e6e-af88-4043-8c31-8ba04c6b4298");
            obj.Integer = 23;
            obj.Text    = "foo bar";
            obj.Date    = (DateTime?)null;

            // Act
            IDictionary <string, Tuple <Type, object> > dict = DictionaryMaker.MakeWithType(obj);

            // Assert
            Assert.AreEqual(new Tuple <Type, object>(typeof(Guid), obj.Id), dict["Id"]);
            Assert.AreEqual(new Tuple <Type, object>(typeof(int), obj.Integer), dict["Integer"]);
            Assert.AreEqual(new Tuple <Type, object>(typeof(string), obj.Text), dict["Text"]);
            Assert.AreEqual(new Tuple <Type, object>(typeof(object), obj.Date), dict["Date"]);
        }
コード例 #3
0
ファイル: Tests.cs プロジェクト: tpluscode/net-Dictionary
        public void Dictionary()
        {
            // Arrange
            var obj = new Dictionary <string, object>
            {
                { "Id", new Guid("8d995e6e-af88-4043-8c31-8ba04c6b4298") },
                { "Integer", 23 },
                { "Text", "foo bar" },
                { "Date", (DateTime?)null }
            };

            // Act
            var dict = DictionaryMaker.Make(obj);

            // Assert
            Assert.AreEqual(obj["Id"], dict["Id"]);
            Assert.AreEqual(obj["Integer"], dict["Integer"]);
            Assert.AreEqual(obj["Text"], dict["Text"]);
            Assert.AreEqual(obj["Date"], dict["Date"]);
        }
コード例 #4
0
ファイル: Tests.cs プロジェクト: tpluscode/net-Dictionary
        public void Anonymous()
        {
            // Arrange
            var obj = new
            {
                Id      = new Guid("8d995e6e-af88-4043-8c31-8ba04c6b4298"),
                Integer = 23,
                Text    = "foo bar",
                Date    = (DateTime?)null
            };

            // Act
            var dict = DictionaryMaker.Make(obj);

            // Assert
            Assert.AreEqual(obj.Id, dict["Id"]);
            Assert.AreEqual(obj.Integer, dict["Integer"]);
            Assert.AreEqual(obj.Text, dict["Text"]);
            Assert.AreEqual(obj.Date, dict["Date"]);
        }
コード例 #5
0
ファイル: Tests.cs プロジェクト: tpluscode/net-Dictionary
        public void AnonymousWithType()
        {
            // Arrange
            var obj = new
            {
                Id      = new Guid("8d995e6e-af88-4043-8c31-8ba04c6b4298"),
                Integer = 23,
                Text    = "foo bar",
                Date    = (DateTime?)null
            };

            // Act
            var dict = DictionaryMaker.MakeWithType(obj);

            // Assert
            Assert.AreEqual(new Tuple <Type, object>(typeof(Guid), obj.Id), dict["Id"]);
            Assert.AreEqual(new Tuple <Type, object>(typeof(int), obj.Integer), dict["Integer"]);
            Assert.AreEqual(new Tuple <Type, object>(typeof(string), obj.Text), dict["Text"]);
            Assert.AreEqual(new Tuple <Type, object>(typeof(DateTime?), obj.Date), dict["Date"]);
        }
コード例 #6
0
ファイル: Tests.cs プロジェクト: tpluscode/net-Dictionary
        public void Expando()
        {
            // Arrange
            dynamic obj = new ExpandoObject();

            obj.Id      = new Guid("8d995e6e-af88-4043-8c31-8ba04c6b4298");
            obj.Integer = 23;
            obj.Text    = "foo bar";
            obj.Date    = (DateTime?)null;

            // Act
            // If I use "var dict" here the type of dict is an ExpandoObject...
            // What on earth is that?
            IDictionary <string, object> dict = DictionaryMaker.Make(obj);

            // Assert
            Assert.AreEqual(obj.Id, dict["Id"]);
            Assert.AreEqual(obj.Integer, dict["Integer"]);
            Assert.AreEqual(obj.Text, dict["Text"]);
            Assert.AreEqual(obj.Date, dict["Date"]);
        }
コード例 #7
0
        /// <summary>
        /// Makes a ExpandoObject out of the given object.
        /// </summary>
        /// <param name="value">Object to become ExpandoObject</param>
        /// <returns>The ExpandoObject made</returns>
        public static ExpandoObject ToExpando(this object value)
        {
            if (value == null)
            {
                throw new ArgumentNullException("value");
            }

            var expando = value as ExpandoObject;

            if (expando == null)
            {
                expando = new ExpandoObject();
                var dict = (IDictionary <string, object>)expando;

                foreach (var kvp in DictionaryMaker.Make(value))
                {
                    dict.Add(kvp);
                }
            }

            return(expando);
        }
コード例 #8
0
        /// <inheritdoc />
        public Uri ExpandAbsolute <T>(object parameters)
        {
            var dictionary = parameters as IDictionary <string, object> ?? DictionaryMaker.Make(parameters);

            return(this.ExpandAbsolute <T>(dictionary));
        }
コード例 #9
0
 public static void AddPair(string from, string to, string label, DictionaryMaker dm)
 {
     dm.Add(new Word(from + "@" + to, label));
     dm.Add(new Word(from + "@", "频次"));
 }